我有这样一栏:"UID, Street, Reg_number, ecc...
"uid, street, reg_number, ecc..."
我需要通过运行这个查询来测试。
SELECT street FROM dict WHERE uid = '1001' AND reg_number = '243222';
但每次我在WHERE子句中包含reg_number的查询时 受影响的行数仍然为0,为什么?
reg_number列中的值是正确的,但仍然不能工作。
因为没有行受到影响。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';