英字と数字でデータを検索して、いくつかのデータベース入力を使用しています。私はアルファを表示する LIKE を使用していますが、数値入力以外はすべて正常に機能します。
SELECT * FROM `product` WHERE `name` LIKE `[0-9]%`
私が使用しているようなワイルドカードに間違いはありますか?
注:「99 Tシャツモデル」のように検索しているデータの例なので、基本的には数字で始まるすべての名前を並べ替えたいだけで、次の文字は気にしません。
通常、正規表現とワイルドカードを混在させることはできません。正規表現のいずれかを使用します (例: (Oracle バージョン):
select *
from Product
where RegExp_Like(name, '^[0-9]') --<- Oracle version, see your DBMS regexp format, cause regular expressions are DBMS dependent
-- Oracle: RegExp_Like(name, '^[0-9]')
-- MySql: `name` REGEXP '^[0-9]'
または純粋な like、部分文字列、比較など。
select *
from Product
where (name >= '0') and (name <= '9')