gpt4 book ai didi

MySQL 运算符 LIKE 和 =

转载 作者:行者123 更新时间:2023-11-29 08:04:15 25 4
gpt4 key购买 nike

我有一个 MySQL 5.6(在 Windows 7 操作系统上运行)数据库。在这个数据库中,我有一个简单的表 (Bolle),其中有一个名为 bol_gruppo 的 VARCHAR(255) 字段。

该数据库是通过 MFC 应用程序填充的,该应用程序通过 ODBC 32 连接到 DBMS。现在,用户插入了一组行,其中 bol_gruppo 似乎是“prova”。我说“似乎”是因为如果我执行 LIKE 查询:

SELECT * FROM bolle WHERE bol_gruppo LIKE 'prova';

没有返回任何行,而:

SELECT * FROM bolle WHERE bol_gruppo = 'prova';

给出了正确的结果。不带过滤器的查询显示有 bol_gruppo 设置为“prova”的行。哪里有问题?我如何查看 bol_gruppo 中实际存储的内容?

最佳答案

问题可能是“prova”在您的数据中存在尾随空格,例如'普罗瓦'

如果有空格,LIKE 将不会返回结果,但是 = 将返回结果。

bol_gruppo = 'prova'

这将返回结果

.... WHERE bol_gruppo = 'prova'

"="会将 'prova' 视为与 'prova ' 相同

但是

.... WHERE bol_gruppo LIKE 'prova' 

“LIKE”会将“prova”视为与“prova”不同

它将检查确切的字符串,除非使用/声明通配符,因此这将返回 0 行

In particular, trailing spaces are significant, which is not true for CHAR or VARCHAR comparisons performed with the = operator:

http://dev.mysql.com/doc/refman/5.6/en/string-comparison-functions.html

关于MySQL 运算符 LIKE 和 =,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23054596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com