[英]MYSQL: SUB QUERY WITH LIKE
大家好,我想知道如何在總人數上實現目標
這是查詢
SELECT
field1,
field2,
(select count(*)
from table2 as t2
where t2.field5 LIKE '%' + t1.field2 + '%') as total_row
FROM table1 as t1 ORDER BY total_row DESC
我想知道如何嵌入類似的陳述,因為field5具有一個或多個以逗號分隔的數據作為字符串
例如 field5具有“貓,狗,鼠標”
因此,field2正在尋找“ dog”之類的總行
希望你能幫助我。
假設逗號后面沒有空格,則需要執行以下操作:
select field1, field2, (
select count(*)
from table2 as t2
where t2.field5 = t1.field2
or t2.field5 like t1.field2 + ',%'
or t2.field5 like '%,' + t1.field2 + ',%'
or t2.field5 like '%,' + t1.field2
) as total_row
from table1 as t1
order by total_row desc
在每個字段的前面和后面串聯逗號:
SELECT field1
,field2
,( SELECT COUNT(*)
FROM table2 as t2
WHERE ','+t2.field5+',' LIKE '%,' + t1.field2 + ',%') as total_row
FROM table1 as t1 ORDER BY total_row DESC
不知道上面的是否在MySQL中有效,可能需要CONCAT()
:
SELECT field1
,field2
,( SELECT COUNT(*)
FROM table2 as t2
WHERE CONCAT(',',t2.field5,',') LIKE CONCAT('%,',t1.field2,',%') as total_row
FROM table1 as t1 ORDER BY total_row DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.