MySQL查询按字母顺序搜索

时间:2010-10-20 07:09:52

标签: mysql sql regex

如何检索那些以ABC开始的角色明星的记录,

我刚试过这个查询

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, 

我想要的是,我想拉出记录,这些记录的名称以ABC开头,

它也应该按字母顺序排序,

我也试过以下查询。

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

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

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

由于

2 个答案:

答案 0 :(得分:5)

您可以尝试:

SELECT * FROM `test_tbl` WHERE cus_name REGEXP '^[abc]';

它会列出cus_nameabc开头的所有行。

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

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

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

  • 第一个^是起始锚。
  • [..]是角色类。
  • 字符类中的^ 否定它。所以[^abc]是任何 三个以外的人物 列出。
  • +是一个或多个的量词 更多。
  • $是结束锚。

如此有效地说:给我cus_name包含一个或多个不能是任何小写字母的字母的所有行。

答案 1 :(得分:3)

尝试改为

SELECT * FROM `test_tbl` WHERE cus_name like 'a%'
相关问题