【发布时间】:2025-12-16 09:10:01
【问题描述】:
我有一个包含用户 ID(candidate_id)和技能的表
在单独的表 (required_skills) 上,我有一列技能用逗号 (,) 分隔,例如 Administrator,office
我正在尝试创建一个 SELECT 语句来查找候选人在哪里拥有“required_skills”表中列出的所有技能。
我尝试过使用数组,但对它们不够了解...
$myString = "$skills";
$myArray = explode(',', $myString);
foreach($myArray as $my_Array){
$result=mysql_query("SELECT * FROM candidate_skills WHERE skill LIKE '%$my_Array%'");
这显然没有给我我想要的,因为它为每一行创建了一个选择语句......
谁能给点建议?
【问题讨论】:
-
警告:不要使用在 PHP 7 中删除的过时的
mysql_query接口。PDO is not hard to learn 之类的替代品和PHP The Right Way 之类的指南有助于解释最佳实践.这里的参数是 NOT properly escaped 并且在这段代码中有严重的 SQL injection bugs。转义任何和所有用户数据,尤其是来自$_POST或$_GET。 -
@PatrickQ - 如果我有 2 个逗号分隔值,您能否提供示例选择语句?因为这 2 个值的顺序可能不同且不相同。
-
@PatrickQ 只有在候选人没有无关技能的情况下才有效。如果需要“a,c”,并且候选人有“a,b,c”,则该候选人将被排除在外。
-
@PatrickQ - 因此这行不通。一个字段可以是
office,administrator,另一个字段可以是administrator,office -
完全正确@Uueerdo!