我想在phpmyadmin(mysql)中运行一个查询,它会在字符串中的特定位置检查表格中的特定值,我是mysql的新手,这是我尝试过的但是有一个语法问题。我希望在第5位找到值“1”并显示所有拥有此值的用户。
SELECT*
FROM`user`
WHERE`options`LOCATE(`options`,1,5)
LIMIT 0 , 30
的问候, 筒仓
答案 0 :(得分:3)
Locate用于在字符串中查找值ANYWHERE。您只想要一个特定的位置,因此请改用substr()
:
SELECT *
FROM user
WHERE substr(options, 5, 1) = '1'
答案 1 :(得分:0)
你可以尝试
SELECT*
FROM`user`
WHERE options LIKE '____1%'
LIMIT 0 , 30
答案 2 :(得分:0)
另一个;)
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)
;
结果:
COL1 COL2
G11 112
G12-2 111