我在以下sql上得到空行
SELECT * FROM flyers WHERE fId='6' AND 'userId'='400'
MySQL返回空结果集
(i.e. zero rows). (Query took 0.0004 sec)
但是当我使用
SELECT * FROM flyers WHERE fId='6'
显示行
0 - 0 (1 total, Query took 0.0005 sec).
当我得到我的结果时,仅使用主键是正确的。
但是我不知道为什么mysql在对主键使用AND时返回空行。
注意:-fId是传单表的主键。
在您的查询中,您只有一个错误,那就是您在周围使用了单引号userId
。使用反引号代替或不使用反引号:
SELECT * FROM flyers WHERE fId='6' AND userId='400'
SELECT * FROM flyers WHERE fId=6 AND userId=400// safe not to use quotes
但出于以下原因,我建议不要在数字周围使用引号。
真正的问题归结为类型转换。当您将数字放在引号中时,它将被视为字符串,并且MySQL必须先将其转换为数字,然后才能执行查询。尽管这可能会花费少量时间,但是当MySQL在转换字符串时做得不好时,真正的问题就开始出现。
例如,MySQL会将基本字符串(如“ 123”)转换为integer
123,但会将某些较大的数字(如“ 18015376320243459
”)转换为浮点数。由于浮点可以四舍五入,因此您的查询可能会返回不一致的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句