我有没有工作的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