某表中存的menuitem字段值为"3,4",要求找出3和4对应的menuitem值:
SELECT name FROM tb_menuitem where CONCAT(',', '3,4', ',')like CONCAT('%,', CAST(id AS CHAR),',%') --id前后加个逗号反正4772的值用772就能查出来,作用同 find_in_set
在mysql workbench中搞了半天,创建函数的语法老是报错,最后通关的一份记录备忘,关键还是要正确使用DELIMITER
DELIMITER $$
DROP function IF EXISTS mealbooker.fGetMenuItemNameZh; $$
DELIMITER $$
CREATE FUNCTION mealbooker.fGetMenuItemNameZh(
ItemIDs varchar(50)) RETURNS varchar(800) CHARSET gb2312
BEGIN
DECLARE myres varchar(800);
SET myres = '';
SELECT GROUP_CONCAT(name SEPARATOR ',') INTO myres FROM mealbooker.tb_menuitem
where CONCAT(',', ItemIDs, ',')like CONCAT('%,', CAST(id AS CHAR),',%');
RETURN myres;
END $$