我有沒有工作的MySql如果在where子句中
SELECT DISTINCT CONCAT(u.firstname, ' ', u.lastname) AS fnameLname, s.student_number, u.user_id
FROM user u
LEFT OUTER JOIN student s ON u.user_id = s.user_id
WHERE
case when @filter != ''
then ((u.firstname REGEXP CONCAT('^[', @filter, ']') OR u.lastname REGEXP CONCAT('^[', @filter, ']')) OR student_number REGEXP CONCAT('^[', @filter, ']'))
else 1=1
AND (u.user_type_id = 0)
ORDER BY u.lastname, u.firstname
我要選擇從表用戶,我已經實現搜索字段(在student_number或姓的開始搜索用戶代碼語句和姓氏(只是名字或姓氏的第一個字母))。
例如,如果我搜索「j s」,它將匹配例如John Smith,而不是John Moses。它也將匹配傑里米薩索。 @filter是asp.net中的控制參數。
任何人都可以幫助我嗎?
說明您搜索縮寫或前綴 – Franky
不確定爲什麼要嘗試使用CASE語句。看起來你可能只是或幾個WHERE子句在一起。 – Kickstart