【问题标题】:Problems with MySQL Query (SELECT)MySQL 查询 (SELECT) 的问题
【发布时间】:2020-09-30 12:29:09
【问题描述】:

我有这个专栏:

“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】:

因为没有行受到影响。 SELECT 语句不会影响行,它会返回它们。

在 Workbench 中一一尝试以下查询。

SELECT street FROM dict; 

SELECT street FROM dict WHERE reg_number = '243222';

SELECT street FROM dict WHERE uid = '1001';

如果你的值是正确的,并且 street 有一个值,你会得到 row(s) 回来。

如果这根本不起作用,请尝试以下方法:

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';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2011-03-20
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多