1

英字と数字でデータを検索して、いくつかのデータベース入力を使用しています。私はアルファを表示する LIKE を使用していますが、数値入力以外はすべて正常に機能します。

SELECT * FROM `product` WHERE `name` LIKE `[0-9]%`

私が使用しているようなワイルドカードに間違いはありますか?

注:「99 Tシャツモデル」のように検索しているデータの例なので、基本的には数字で始まるすべての名前を並べ替えたいだけで、次の文字は気にしません。

4

1 に答える 1

4

通常、正規表現とワイルドカードを混在させることはできません。正規表現のいずれかを使用します (例: (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') 
于 2013-07-23T06:16:43.577 に答える