首先,我在数据库中有1个表。
1)标签:
id name
1 theme1=test1
2 theme1=test2
3 theme1=test3
4 theme2=test1
5 theme2=test2
6 theme2=test3
我在数组中有id
tags
串。像1,3。
现在,
1)从id = 1
的标签中选择名称结果:theme1 = test1
(现在使用通配符)
2)从标签中选择ID,例如' theme_test1'
结果:1,4
(此处' theme_test1'需要从query1获取)
我正在获得输出,但需要使用2个查询。我想在单个查询中执行此操作。
由于
答案 0 :(得分:2)
SELECT id FROM tags WHERE name LIKE (
SELECT CONCAT(SUBSTRING(name,1,5),'__',SUBSTRING(name,8)) FROM tags WHERE id=1
)
返回1,4
但是两个查询(或重构)可能是更好的选择
答案 1 :(得分:0)
如果你想获得具有相同值的id,你可以试试这个:
SELECT t2.* FROM yourtable t1
JOIN youtable t2 on ON t2.name like concat(substr(t1.name,1,5), '%', substr(t1.name,8))
WHERE t1.id=1;
答案 2 :(得分:0)
为了更好地使用性能:
SELECT t.id
FROM r
INNER JOIN r AS t ON t.name LIKE CONCAT('theme_=test', SUBSTRING(r.name,-1))
WHERE r.id = '1'
在这种情况下, r
是你的表。
注意:如果您有theme1 = test1和theme1 = test10值,此答案无效。
答案 3 :(得分:-1)
也许你可以使用查询:
从标签中选择id,其中name =(从id为1的标签中选择名称)。
您可以尝试该查询。