簡體   English   中英

計算MySql中不同列中包含每個字符串的行數

[英]Counting Number of Rows containing each string in a different column in MySql

我有以下問題:我有一個名為 FOOD 的表,其中有一列“NAME”包含食物名稱,例如“Rice”、“White Rice”、“Milk”、“Soy Milk”等。

我需要過濾掉 NAME 只包含一個單詞的行,然后計算這些單個單詞作為食物名稱的一部分出現在 NAME 列中的行數。

例如,如果 NAME 列是:“Rice”、“White Rice”、“Milk”、“Soy Milk”、“Brown Rice”,那么結果應該是 Rice - count is 3 和 Milk - count is 2。

我知道如何獲取 NAME 列中包含單個單詞的值:

SELECT NAME AS lones FROM FOOD WHERE NAME NOT LIKE '% %' GROUP BY lones

我如何從這里繼續?

謝謝

試試這個查詢。 我將food與一個由單字食物組成的臨時表連接起來(我通過選擇沒有空格的名稱來創建)。

JOIN 條件是單個單詞 food 出現在連接的 food 表的 name 列中。

POSITION() 的工作方式類似於其他語言中的 indexOf() 函數。 如果在源字符串中找不到搜索字符串,則返回 0。

select single_word_foods.name, count(*) 
from food INNER JOIN 
(select distinct name from food where position(' ' in name) = 0) as single_word_foods
on POSITION(single_word_foods.name in food.name) > 0
group by single_word_foods.name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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