0
在MySQL加後,在MySQL
select various(functions(here(...))) foo, count(*) ct
from table
group by foo
having ct > 1;
看起來重複數據刪除一切,我有一個查詢。我想更改查詢以從foo刪除加號和其後的任何內容,以便如果various(functions(here(...)))
得到foo+bar
我只得到foo
。 (如果沒有出現加號,則保持不變。)
這樣做的最佳方法是什麼?我可以使用replace
select if(locate("+", various(functions(here(...))))>0, left(various(functions(here(...))), locate("+", various(functions(here(...)))) - 1), various(functions(here(...)))) foo, count(*) ct
from table
where conditions
group by foo
having ct > 1;
但這似乎是'顯然'是錯誤的東西。正則表達式會很好,但據我所知,它們在MySQL中不存在。子查詢使這個幾乎沒有笨重
select if(locate("+", bar)>0, left(bar, locate("+", bar)-1), bar) foo
from table
left join (
select pkey, various(functions(here(...))) bar
from table
where conditions
) subtable using(pkey)
group by foo
having ct > 1
;
但表很大,我想知道如果有一個更有效或更多維護的解決方案。
這麼簡單!抱歉,我錯過了這個。 – Charles