我有此列:
“ uid,街道,reg_number等”。
我需要通过运行以下查询进行测试:
SELECT street FROM dict WHERE uid = '1001' AND reg_number = '243222';
但是每次我在WHERE子句中运行包含reg_number的查询时,受影响的行数都保持为0,为什么呢?
reg_number列中的值是正确的,但仍然不起作用。
答案 0 :(得分:2)
因为没有行受到影响。 SELECT语句不影响行,它返回它们。
在Workbench中一一尝试以下查询。
SELECT street FROM dict;
SELECT street FROM dict WHERE reg_number = '243222';
SELECT street FROM dict WHERE uid = '1001';
如果您的值正确,并且street具有值,您将获得返回的行。
如果那根本不起作用,请尝试以下操作:
SELECT * FROM dict;
SELECT * FROM dict WHERE reg_number = '243222';
SELECT * FROM dict WHERE uid = '1001';
这将帮助您使用排除过程找出不正确的地方。
如果它们在Workbench中工作,而不是在软件中工作,则说明您从查询中错误地读取了行数据,或者未设置查询句柄(失败)。了解您使用的语言和代码会有所帮助。
还有一件事-如果此数据是手工输入的或存储在VARCHAR中,而不是其他数字存储类型,则永远不要低估了无形尾随空格的功能(最后);在这种情况下,请尝试以下操作:
SELECT street FROM dict WHERE TRIM(uid) = '1001' AND TRIM(reg_number) = '243222';