gpt4 book ai didi

mysql - LIKE '[charlist]%' 语法在 MySQL 中不起作用 (phpMyAdmin)

转载 作者:可可西里 更新时间:2023-11-01 06:37:32 27 4
gpt4 key购买 nike

有一个名为Students 的表。我想提取名字以“n”或“p”或“y”开头的学生的名字。我知道在 TSQL(MS SQL 服务器)中我可以按如下方式编写查询并且它有效:

SELECT * FROM Students WHERE StudentName LIKE '[npy]%'

但是当我在 MySQL (phpmyadmin) 中执行相同的查询时,我无法检索到正确的结果集。我尝试将学生姓名的字母转换为 charlist 中提到的相同大小写。我做了一些谷歌搜索,发现在 MySQL 中我们需要将其指定为正则表达式。我执行了以下查询并得到了预期的结果。

SELECT * FROM Students WHERE StudentName REGEXP '[[:<:]]n | [[:<:]]p | [[:<:]]y'

我想知道 LIKE '[charlist]%' 语法不适用于 MySQL 的原因。是因为 MySQL 中的实现(MySQL 不支持该语法)还是我使用的 phpmyadmin 版本有问题?

非常感谢与此相关的任何帮助。谢谢:)

最佳答案

还有一种更短的方式来编写您的查询:

SELECT * FROM Students WHERE StudentName REGEXP '^[npy]'

如果您担心区分大小写:

SELECT * FROM Students WHERE StudentName REGEXP BINARY '^[npy]'

在 MySQL 中,REGEXP 模式匹配在值的任何地方都成功,这与 LIKE 不同,后者模式必须匹配整个值。

以下链接将为您提供更完整的答案:

MySQL Pattern Matching

关于mysql - LIKE '[charlist]%' 语法在 MySQL 中不起作用 (phpMyAdmin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285332/

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