如何编写MySQL查询,以基于运行时提供的逗号分隔值从数据库中获取数据? PS:忽略逗号分隔值的优先顺序。
我已经尝试过使用Like运算符,但是并没有给我准确的结果。还尝试了IN运算符,但根本不起作用。
SELECT * FROM Candidate_Table WHERE Key_Skills喜欢吗?和Key_Skills喜欢吗? AND Key_Skills喜欢吗?;
预期结果: 查询应得出与输入值匹配的准确值。 输入值:Java,C,HTML5
F_Name L_Name移动关键技能体验城市
---------- ---------- ---------- ---------- ------- ------------
Tim Johnson 5525365 C,Java,Python,HTML5 3年奥兰多
答案 0 :(得分:0)
尝试
选择F_Name,L_Name,Mobile,concat(Key_Skills,“,”,Key_Skills),体验,城市
来自候选表
按F_Name,L_Name,Mobile,Experience,City分组;
答案 1 :(得分:0)
您可以尝试将关键技能放在一个数组中,说出keyskills
然后做
SELECT * from Candidate_Table where Key_Skills in (keyskills);
您可以将*替换为要显示的列,并按这些列进行分组
答案 2 :(得分:0)
这听起来像是Full Text Search
的工作,您必须为FULLTEXT
字段定义一个Key_Skills
索引。这种索引使您可以进行这种搜索:
SELECT * FROM Candidate_table WHERE MATCH(Key_Skills) AGAINST('Java Python' IN NATURAL LANGUAGE MODE)
结果将包括所有具有这些技能的候选人。还有一种模式,您可以进行更具体的搜索,例如,如果您希望所有具有Java和Python的候选人,但不包括那些具有PHP的候选人,则可以像在Google上那样进行BOOLEAN搜索。
SELECT * FROM Candidate_table WHERE MATCH(Key_Skills) AGAINST('+Java +Python -PHP' IN BOOLEAN MODE)
您要做的就是使用提供的运算符排列搜索条件。以下是有关此示例的更多示例:https://www.w3resource.com/mysql/mysql-full-text-search-functions.php