1

Mysql クエリがあります。整数の結果のみをフィルタリングしたい。私の質問は-

SELECT * FROM table as p WHERE p.test between 0 AND 999

しかし結果はこう――

747
748
749
FO4001
FO4002
750
751

2点お聞きしたいのですが…

1) 以下の結果を除外する方法はありますか?

FO4001
FO4002

2) これらが結果に含まれるのはなぜですか?

4

1 に答える 1

4

REGEXPこれを試して、値がすべて数値かどうかをテストするために使用します。

SELECT * 
FROM table1 
WHERE x BETWEEN 0 AND 999
      AND x REGEXP '^[0-9]+$';

SQLFiddle デモ

于 2012-10-05T09:24:16.890 に答える