簡體   English   中英

MYSQL:喜歡的子查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM