连接查询中的列以使用“ LIKE”运算符

时间:2018-09-13 15:00:10

标签: php mysql

我正在创建搜索以按名称搜索。在数据库中,我有名字(fname)和姓氏(lname)。

按名字或姓氏而不是全名搜索时,搜索有效。

例如,输入“ Joe”或“ Smith”作为值将带回“ Joe Smith”。输入“ Joe Smith”作为值将不带回记录。

$value = "%".$search_val."%";
$query = "SELECT fname, lname FROM users WHERE (fname LIKE ? OR lname LIKE ?)";

if ($stmt = $conn->prepare($query)) {

    $stmt->bind_param('ss', $value, $value);
    $stmt->execute();
    $stmt->bind_result($fname, $lname);
    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s %s\n <br>", $fname, $lname);
    }
    /* close statement */
    $stmt->close();
}

/* close connection */
$conn->close();
?>

是否可以在查询中串联fnamelname?还是有其他解决方案?

2 个答案:

答案 0 :(得分:1)

将其替换为您的查询:-

select concat(fname, ' ',lname) as name      
from users       
where name LIKE ? ;        

答案 1 :(得分:0)

您可以使用串联功能refference

for(int i = 0; i < input.length(); i++) {
    switch (input.charAt[i]) {
        case 'a': input.charAt[i] = 'c';
                  break;
        case 'i': input.charAt[i] = 'b';
                  break;
        //...
        default: break; // nothing to do for the rest
}