我有一張數據表。在該表中有一個名爲「TypeTag」的列,可以是11位數字或11位數字「_」,後跟3位數字。含義:'XXXXXXXXXXX'或'XXXXXXXXXXX_XXX'。使用「SELECT CASE」中的「LIKE」不起作用 - mysql
我只需要第一部分 - 所以我寫了一個查詢:
SELECT
(CASE
WHEN TypeTag LIKE '%_%' THEN LEFT(TypeTag, LENGTH(TypeTag) - 4)
ELSE TypeTag
END)
FROM `DailyReport`
WHERE DATE>='2016-07-01'
的問題是,所有的值返回沒有他們的最後4個字符,情況似乎沒有工作(或者也許是LIKE不起作用),因爲所有記錄都會進入第一個「WHEN」而不是「ELSE」。
例如,如果我的原始數據集是:
56329856721
56329856722_502
56329856723
56329856724
56329856725_633
56329856726
然後我得到的迴應是:
5632985
56329856722
5632985
5632985
56329856725
5632985
我使用MySQL(SQLyog的具體)。有人知道我的查詢有什麼問題嗎?或者如何以我能得到所需結果的方式編寫條件?
謝謝大家!
我不明白這裏的案例陳述的必要性。從...中選擇左邊(TypeTag,11)有什麼問題? –