60

文字列文字とその後ろに 1 桁の数字で始まるレコードを検索する必要がある単純なタスクがあります。私がしようとしているのはこれです

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA[d]%')

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA[0-9]%')

ただし、両方のクエリは常にnullレコードを返します

trecord
-------
null

次のクエリを実行した場合

SELECT trecord FROM `tbl` WHERE (trecord LIKE 'ALA%')

それは返す

trecord
-------
ALA0000
ALA0001
ALA0002

これは、ALA で始まり、その後に数字が続くレコードがあることを意味します。

編集

具体的には、PHP MySQL と innodb エンジンを使用して実行しています。

4

2 に答える 2

82

LIKE の代わりにREGEXPを使用できると思います

SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')
于 2013-09-13T07:12:27.607 に答える