-1

列の最初の文字が特定の文字に等しく、2 番目の文字が [0-9] の数値であるすべての値を選択したいのですが、構文を完全に取得できません。

select * from table where var LIKE ("r*")

ありがとう、

4

5 に答える 5

2
select * from table where var LIKE "r%"

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

2 番目の文字が数値であることを確認するには、次を使用する必要がありますREGEXP

select * from table where var REGEXP "^r[0-9]"

http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp

于 2013-07-11T20:16:26.560 に答える
1

LIKE2 つのワイルドカード文字を認識します。

  • _任意の 1 文字に一致
  • %任意の数の文字に一致

したがって、この場合、次を使用する必要があります。

SELECT * FROM `table` WHERE `var` LIKE 'r%'

編集:

特定の範囲の文字 (数字など) を許可したい場合、それはLIKEのフィールドの範囲外ですREGEXP:

SELECT * FROM `table` WHERE `var` REGEXP '^r[0-9]'

正規表現は少し異なることに注意してください。これらは文字列のどこにでも一致する可能性があるため、^は最初だけを見るように指示しますLIKE

于 2013-07-11T20:19:29.243 に答える
1

単純 :)

select * from table where var LIKE 'r%'

またはさらに良い

select * from table where lower(var) LIKE 'r%'

編集 :

select * from table where var REGEXP "^r[0-9]"
于 2013-07-11T20:16:37.307 に答える
0

次の構文に注意してください。

SELECT * FROM table WHERE var LIKE 'r%'
于 2013-07-11T20:17:17.743 に答える
0

* ではなく % を使用する必要があります

SELECT * 
FROM table 
WHERE var LIKE "r%"
于 2013-07-11T20:17:26.547 に答える