我得到一个像下面的字符串
'.NET Framework','JAVA J2EE'
现在我需要检查列Skillset
是否存在上述任何一个列,并且需要返回列的这些值。
请帮助我如何在mysql中执行此操作。
答案 0 :(得分:0)
在逗号上拆分输入字符串,并从每个子字符串中创建一个FIND_IN_SET
表达式,并将它们与OR
合并。
SELECT *
FROM table
WHERE FIND_IN_SET("'.NET Framework'", Skillset) OR FIND_IN_SET("'JAVA J2EE'", Skillset)
以下是在PHP中为任意数量的输入字符串编写代码的方法:
$skill_array = array();
foreach (explode(',', $skills) as $skill) {
$skill_array[] = 'FIND_IN_SET("' . $skill . '")';
}
$sql = 'SELECT * FROM table WHERE ' . implode(' OR ', $skill_array);
答案 1 :(得分:0)
在做了一些R& D之后,我找到了一个解决方案。我的确如下:
SELECT *, skillset FROM tresume_mas WHERE skillset REGEXP '.NET Framework|JAVA J2EE';