0

a名前の最初の文字がorbまたはcorのクエリを書きたいと思いますc-g。アルファベット順の名前のリストがありますA-Z。、 、の 3 段階A-Gでアルファベット順にフィルタリングしたい 。G-MN-Z

レコードをクリックするA-Gと、最初の文字から始まる名前が表示されますA-G

mysql_query("select * from users where name like "A%" or name like "B%" or name like "C%" or name like "D%" or name like "E%" or name like "F%" or name like "G%"");

しかし、私はそのようなことを何度も書きたくありません

何度か書く代わりに簡単な方法はありますか?

4

3 に答える 3

6

あなたが試すことができます

mysql_query("select * from users where LOWER(SUBSTR(name, 1, 1)) IN ('a','b','c','d','e','f','g')");
于 2013-10-17T08:14:58.623 に答える
5

REGEXPここでうまくいくかもしれません:

SELECT ........ WHERE `name` REGEXP '^[a-g]'

または、インデックスをより有効に使用するには、次のようにします。

... WHERE `name` < 'G'
于 2013-10-17T08:16:14.447 に答える
1

これを達成する方法があります:

最初:あなたが.. OR LIKE ..説明したように、構文でそれを行うことができます。

2番目: SUBSTRING()を使用して演算子に渡しINます:

SELECT * FROM t WHERE SUBSTRING(name, 1,1) IN ('A', 'B', 'C')

またはORD()を使用します

SELECT * FROM t WHERE ORD(SUBSTRING(name, 1,1)) BETWEEN ORD('A') AND ORD('C')

3 番目: REGEXPを使用します。

SELECT * FROM t WHERE name REGEXP '^[ABC]'
于 2013-10-17T08:17:53.580 に答える