如何检索以A
OR B
OR C
开头的星号记录,
我刚试过这个查询
SELECT * FROM `test_tbl` WHERE Left(cus_name, 1) = 'a'
---> display all customer name starting with character a
我又加了一个条件,就是
SELECT * FROM `test_tbl` WHERE Left(cus_name, 1) = 'a' or Left(cus_name, 1) = 'b'
--->It displayed all customer name starting with character a and in some records middle i saw some name starting with b also,
我想要的是,我想要提取记录,名称以 A
或 B
或 C
开头,
而且它应该按字母顺序排序,
我也尝试了下面的查询。
SELECT * FROM `test_tbl` WHERE Left(cus_name, 1) REGEXP '^[^a-z]+$';
上面的渲染记录是,只有两条以A
开头的记录,
上面的问题是做字母分页,
谢谢
最佳答案
你可以试试:
SELECT * FROM `test_tbl` WHERE cus_name REGEXP '^[abc]';
它将列出 cus_name
以 a
、b
或 c
开头的所有行。
使用的正则表达式是^[abc]
:
^
: 是开始 anchor- [..] :是字符类。所以
[abc]
匹配a
或b
或c
。等同于(a|b|c)
您使用的正则表达式:^[^a-z]+$
- 第一个
^
是起始 anchor 。 - [..] 是字符类。
- 字符类里面的
^
否定它。所以[^abc]
是任意的 三者以外的性格 列出。 +
是一个或的量词 更多。$
是结束 anchor 。
你实际上是在说:给我所有 cus_name
包含一个或多个不能是任何小写字母的字母的行。
关于用于字母搜索的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3975472/