还有,你的表B里面不应该有重复,id应该是它的主键。
对于满足上面条件的正常数据库,程序就非常简单。
对于表B里面有不存在的时候也返回数据,可以使用左连接实现,例如:
SELECT A.ID, CASE B.SHOW WHEN NULL THEN "大家好" ELSE B.SHOW END, SUBSTRING_INDEX(A.ARR,"#",2) FROM A LEFT JOIN B ON B.ID=SUBSTRING_INDEX(A.ARR,"#",1)
简单 CASE 函数:
CASE input_expressionWHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
CASE 搜索函数:
CASEWHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
比如:
第一种用法:
SELECT name,CASE WHEN birthday < '1981' THEN 'old'
WHEN birthday > '1988' THEN 'yong'
ELSE 'ok' END YORN
FROM lee
第二种用法:
SELECT NAME, CASE nameWHEN 'sam' THEN 'yong'
WHEN 'lee' THEN 'handsome'
ELSE 'good' END as oldname
FROM lee
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)