0

我希望在 phpmyadmin (mysql) 中运行一个查询,该查询将在字符串中的特定位置检查表中的特定值,我是 mysql 新手,这是我尝试过的,但存在语法问题。我希望在位置 5 处找到值“1”并显示所有拥有此值的用户。

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

问候,筒仓

4

3 回答 3

3

Locate 用于在字符串中的 ANYWHERE 中查找值。您只需要特定位置,因此请substr()改用:

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

你可以试试

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

其他 ;)

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

Duh .. 好吧,因为它只返回第一次出现,所以行不通:$ 但是请检查参考,

样本数据:

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 回答