将变量匹配到两列连接(PHP)

时间:2015-03-26 17:30:01

标签: php mysql

查询中的上一个变量给了我一个值$ name。我需要找到与该名称关联的用户ID,但是在我的users表中,我有两个字段firstName和lastName。

我无法爆炸$ name,因为我有两个双重名称(例如John Eric Smith)和姓氏(例如Jan van der Worde),所以我的尝试是找到一种方法来匹配firstName + lastName和$ name。

我的尝试是这样的:

$drid = "SELECT id FROM users WHERE CONCAT(firstName,' ',lastName)='$name'";
$rest = mysql_query($drid);
while ($row = mysql_fetch_row($rest)) {
    $driver_id = $row[0];
} 

不幸的是,$ driver_id没有任何结果(而$ name会返回结果)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你在寻找这样的东西:

<?php
$drid = "SELECT id FROM users WHERE CONCAT(firstName, ' ', lastName) LIKE '%".$name."%'";
$rest = mysql_query($drid);
while ($row = mysql_fetch_row($rest)) {
    $driver_id = $row[0];
}
?>

答案 1 :(得分:1)

出于性能原因,我建议添加一个新的全名字段或使用临时表而不是使用concat。

如果您正在寻找临时解决方案,

https://stackoverflow.com/a/29285246/3923450应该可以正常工作