gpt4 book ai didi

where子句中带单引号的mysql查询

转载 作者:行者123 更新时间:2023-11-29 06:56:53 30 4
gpt4 key购买 nike

我有这个问题:

SELECT * FROM tbname WHERE LCASE(title) LIKE '%l\'infinito%'

表中的值在引号前包含斜杠。为什么查询没有返回结果?

谢谢

最佳答案

转义是正确的。您实际上不需要 LCASE,因为 LIKE 不区分大小写(至少在我的 Linux 系统上不区分大小写):

mysql> SELECT 'L\'Infinito' LIKE '%l\'infinito%';
+------------------------------------+
| 'L\'Infinito' LIKE '%l\'infinito%' |
+------------------------------------+
| 1 |
+------------------------------------+
1 row in set (0.00 sec)

也许您想搜索 L'Infinito,使用“n”。或者也许标题似乎包含一个单引号,但它是那些永远不会被充分诅咒的 Windows Word 反向英文引号之一。

或者标题中引用后可能有一个空格。在许多字体中,这不是立即可见的。

L' infinito

您能否使用“%ifinito%”(或“%infinito%”)进行搜索,并验证找到的行确实包含单个 ASCII 引号?

更新

...最后,可能数据库有误。即:

mysql> CREATE TABLE catalogo (title varchar (32));
mysql> INSERT INTO catalogo VALUES ('L\'Infinito');
mysql> SELECT * FROM catalogo;
+------------+
| title |
+------------+
| L'Infinito |
+------------+

如果你像以前一样运行同样的 SELECT,MySQL 会返回 L'Infinito 而不会转义吗?因为如果你有

+-------------+
| title |
+-------------+
| L\'Infinito |
+-------------+

然后标题保存错误,两次转义引号。所以在 L 和引号之间有一个转义符,你将不得不搜索

L\\\'Infinito

“消除”错误。

关于where子句中带单引号的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12198031/

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