如何拆分String并与mysql中存在或不存在String的列进行比较

时间:2014-08-05 04:55:40

标签: mysql sql

我得到一个像下面的字符串

'.NET Framework','JAVA J2EE'

现在我需要检查列Skillset是否存在上述任何一个列,并且需要返回列的这些值。

请帮助我如何在mysql中执行此操作。

2 个答案:

答案 0 :(得分:0)

在逗号上拆分输入字符串,并从每个子字符串中创建一个FIND_IN_SET表达式,并将它们与OR合并。

SELECT *
FROM table
WHERE FIND_IN_SET("'.NET Framework'", Skillset) OR FIND_IN_SET("'JAVA J2EE'", Skillset)

DEMO

以下是在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';