1
我正在使用dotProject(OpenSource项目管理工具),并且需要为我自己的目的做一些自定义的sql选择。从分隔字符串中选择
select u.user_username,
p.project_name,
p.project_start_date,
p.project_end_date,
SUBSTRING(sysval_value,LOCATE(CONCAT(p.project_status,'|'),sysval_value)+2,LOCATE('\n',sysval_value,LOCATE(CONCAT(p.project_status,'|'),sysval_value))-LOCATE(CONCAT(p.project_status,'|'),sysval_value)-2) as project_status
from project_contacts pc
left join users u on pc.contact_id = u.user_id
left join sysvals s on s.sysval_title='ProjectStatus'
left join projects p on p.project_id=pc.project_id
注意到我不得不从sysvals表中选择ProjectStatus的令人讨厌的方式。
为ProjectStatus的sysval_value如下所示: 0|Not Defined/n1|Proposed/n2|In Planning/n3|In Progress/n4|On Hold/n5|Complete/n6|Template/n7|Archived
不知道为什么它是这样的,我本来期望一个状态表具有主键和一个描述(也许只是消灭表的数量在项目中)。
有没有更好的方式在MySQL中选择这种分隔字符串?