gpt4 book ai didi

mysql-如何使用\(反斜杠)处理查询搜索?

转载 作者:行者123 更新时间:2023-11-29 22:17:32 24 4
gpt4 key购买 nike

我在mysql表中插入了一个带有反斜杠(\)的列,例如user\12345。但是当我在表中看到值时,我没有看到正斜杠(\)。我刚刚看到user12345

当我使用以下可能的方式使用反斜杠(\)查询刚刚插入的行时,我总是得到零记录。

select * from users where user='user12345'
select * from users where user='user\12345'
select * from users where user='user\\12345'

当我将列值复制粘贴到记事本+中时,我可以看到每个列值的末尾都有一个回车符。 user12345CRLF,到目前为止我无法更新/删除回车符。但我想用回车来获取记录。我该怎么做?

我不想使用类似的查询,我想查询确切的用户名。我该怎么做?

最佳答案

反斜杠字符\用于转义序列。当您插入像“user\12345”这样的值时,默认情况下mysql服务器将其视为“\1”作为转义字符,但它不是任何特殊字符,因此它会从字符串中丢弃\。

Hitesh> update test set fname='user\344';
Query OK, 2 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0
Hitesh> select fname from test;
+---------+
| fname |
+---------+
| user344 |
| user344 |
+---------+
2 rows in set (0.00 sec)

如果你想将\存储在字符串中,那么你应该使用\

Hitesh> update test set fname='user\\344';
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Hitesh> select fname from test;
+----------+
| fname |
+----------+
| user\344 |
| user\344 |
+----------+
2 rows in set (0.00 sec)

如果您不想将\设置为转义字符,则可以启用 sql 模式 NO_BACKSLASH_ESCAPES。

Hitesh> SET sql_mode = 'NO_BACKSLASH_ESCAPES';
Query OK, 0 rows affected (0.00 sec)

Hitesh> update test set fname='user\344';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0

Hitesh> select fname from test;
+----------+
| fname |
+----------+
| user\344 |
| user\344 |
+----------+
2 rows in set (0.00 sec)

对于回车到列末尾的情况,在查询中您可以在 where 子句中找到以\r 结尾的字符串,并且选择列您可以跳过最后一个字符\r

 Hitesh> set @@sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)

Hitesh> update test set fname='user344\r';
Query OK, 2 rows affected (0.17 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Hitesh> select left( fname, CHAR_LENGTH(fname)-1) as fname from test where fname like '%\r';
+---------+
| fname |
+---------+
| user344 |
| user344 |
+---------+
2 rows in set (0.00 sec)

关于mysql-如何使用\(反斜杠)处理查询搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31077639/

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