我希望在 phpmyadmin (mysql) 中运行一个查询,该查询将在字符串中的特定位置检查表中的特定值,我是 mysql 新手,这是我尝试过的,但存在语法问题。我希望在位置 5 处找到值“1”并显示所有拥有此值的用户。
SELECT*
FROM`user`
WHERE`options`LOCATE(`options`,1,5)
LIMIT 0 , 30
问候,筒仓
我希望在 phpmyadmin (mysql) 中运行一个查询,该查询将在字符串中的特定位置检查表中的特定值,我是 mysql 新手,这是我尝试过的,但存在语法问题。我希望在位置 5 处找到值“1”并显示所有拥有此值的用户。
SELECT*
FROM`user`
WHERE`options`LOCATE(`options`,1,5)
LIMIT 0 , 30
问候,筒仓
Locate 用于在字符串中的 ANYWHERE 中查找值。您只需要特定位置,因此请substr()
改用:
SELECT *
FROM user
WHERE substr(options, 5, 1) = '1'
你可以试试
SELECT*
FROM`user`
WHERE options LIKE '____1%'
LIMIT 0 , 30
其他 ;)
SELECT *
FROM user
WHERE instr(options, '1') = 5
Duh .. 好吧,因为它只返回第一次出现,所以行不通:$ 但是请检查参考,
Locate()
样本数据:
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