MySQL查询(SELECT)的问题

问题描述 投票:0回答:1

我有这样一栏:"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列中的值是正确的,但仍然不能工作。

mysql sql database select rows
1个回答
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';
© www.soinside.com 2019 - 2024. All rights reserved.