簡體   English   中英

SQL語句中的LIKE模式

[英]Pattern for LIKE in SQL Statement

我想選擇所有以任何字符開頭的行。

SELECT * FROM table WHERE field LIKE '[a-z]%' ;

我要查找的行類型如下所示:

ID  DATA

993 DEF055900960

994 DEF055900961

995 DEF055900964

996 DEF056102254

997 DEF056131201

我嘗試RLIKE和REGEXP失敗,並且還為模式添加了大寫字母AZ。

為什么以下各項不起作用?

SELECT * FROM table WHERE field RLIKE '[a-z]' ;

SQL小提琴演示

我在這里閱讀了有關Mysql中的模式匹配的信息

嘗試以下方法:

SELECT * FROM table WHERE field LIKE '[^A-Z]%';

使用REGEXP

http://dev.mysql.com/doc/refman/5.1/zh-CN/regexp.html#operator_regexp

例如,假設我們有此數據集。

mysql> select * from a;
+------+
| b    |
+------+
| abc  |
| zxxb |
| kkfy |
| 0002 |
+------+
4 rows in set

我們想用az模式選擇所有內容

mysql> SELECT * FROM a WHERE b REGEXP BINARY '[a-z]';
+------+
| b    |
+------+
| abc  |
| zxxb |
| kkfy |
+------+
3 rows in set

SQLFiddle

為您的數據集

SQLFiddle

使用正則表達式[a-zA-Z0-9]

mysql> SELECT * FROM a WHERE b REGEXP BINARY '[a-zA-Z0-9]';
+--------------+
| b            |
+--------------+
| DEF055900960 |
| DEF055900961 |
| DEF055900964 |
| DEF056102254 |
| DEF056131201 |
+--------------+
5 rows in set

嘗試這個。

SELECT `firstname`
FROM `users`
WHERE firstname
REGEXP BINARY '^[A-Z]'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM