0

文字列内の特定の位置にある特定の値についてテーブルをチェックするクエリを phpmyadmin (mysql) で実行しようとしています。5 位の値「1」を見つけて、これを持っているすべてのユーザーを表示しようとしています。

SELECT* 
FROM`user` 
WHERE`options`LOCATE(`options`,1,5) 
LIMIT 0 , 30

よろしく、 サイロ

4

3 に答える 3

3

Locate は、文字列内のどこからでも値を見つけるためのものです。特定の場所のみが必要な場合は、substr()代わりに次を使用します。

SELECT * 
FROM user
WHERE substr(options, 5, 1) = '1'
于 2013-01-04T15:36:38.047 に答える
0

別 ;)

SELECT * 
FROM user
WHERE instr(options, '1') = 5

当たり前..最初の出現のみを返すので、うまくいきません:$しかし、参照を確認してください。

サンプルデータ:

COL1    COL2
G11     112
G11-1   0
G11-2   2
G12-2   111

クエリ 1:

-- to check on varchar columns
SELECT * 
FROM tablex
where locate('1',col1,5)
;

varchar の結果:

COL1    COL2
G11-1   0

クエリ 2:

-- to check on int columns
SELECT * 
FROM tablex
where locate(1,col2,2)
;

int の結果:

COL1    COL2
G11     112
G12-2   111
于 2013-01-04T15:44:29.763 に答える
0

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

SELECT* 
FROM`user` 
WHERE options LIKE '____1%'
LIMIT 0 , 30
于 2013-01-04T15:36:29.527 に答える