MySQL查询按字母顺序搜索

Bha*_*mar 2 regex mysql sql

如何检索那些以AOR BOR 开头的角色星的记录C,

我刚试过这个查询

SELECT * FROM `test_tbl` WHERE Left(cus_name, 1) = 'a'

 ---> display all customer name starting with character a
Run Code Online (Sandbox Code Playgroud)

我还添加了一个条件,就是这样

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, 
Run Code Online (Sandbox Code Playgroud)

我想是的,我想拔出记录,这名开头AB或者C,

它也应按字母顺序排序,

我也尝试了以下查询.

SELECT * FROM `test_tbl` WHERE Left(cus_name, 1) REGEXP '^[^a-z]+$';
Run Code Online (Sandbox Code Playgroud)

上面的渲染记录,只有两个记录开始A,

以上是按字母顺序分页的问题,

谢谢

cod*_*ict 5

你可以试试:

SELECT * FROM `test_tbl` WHERE cus_name REGEXP '^[abc]';
Run Code Online (Sandbox Code Playgroud)

它会列出所有行cus_name与任一开始a,bc.

使用的正则表达式是^[abc]:

  • ^ :是起始锚
  • [..]:是角色类.所以[abc]匹配a a或a b或a c.它相当于(a|b|c)

你正在使用的正则表达式: ^[^a-z]+$

  • 第一个^是起始锚.
  • [..]是角色类.
  • ^内部字符类取消它.所以[^abc]比列出的三个其他任何字符.
  • + 是一个或多个的量词.
  • $ 是最终的锚点.

所以你有效地说:给我所有cus_name包含一个或多个字母的行,这些字母不能是任何小写字母.