0

我有mysql表,用户:(id,first_name,last_name,....)

我想做这样的伪查询

SELECT * FROM users WHERE first_name.' '.last_name = 'john doe' LIMIT 10")

我想这样做,因为我在拆分字符串时遇到了很多麻烦(然后我不知道用户输入的顺序是什么'

这是我目前的,不是很好

$phrase = explode(' ',$term);
$last_name = '';
if($phrase[1] != '')
    $last_name= " OR last_name LIKE '%".$phrase[1]."%'";
$qstring = "SELECT usuarios.first_name,usuarios.last_name,
                    usuarios.id as id
            FROM usuarios
            WHERE first_name LIKE '%".$phrase[0]."%' OR last_name LIKE '%".$phrase[0]."%' $last_name LIMIT 5";

任何实现这一点的建议(通过在查询中连接或在 php 中拆分)都将非常受欢迎

4

2 回答 2

2

您可以使用以下命令在 MySQL 查询中连接CONCAT

SELECT * FROM users WHERE CONCAT(first_name,' ',last_name) = 'john doe' LIMIT 10

在您的代码中,这将变为:

SELECT * FROM usuarios WHERE CONCAT(first_name,' ',last_name) LIKE '%{$phrase[0]}%' LIMIT 5
于 2012-06-04T17:21:55.003 回答
0

像这样的东西?

SELECT first_name, last_name, id
FROM usuarios
WHERE CONCAT(first_name, last_name) LIKE '%$phrase[0]%' LIMIT 5
于 2012-06-04T17:23:13.650 回答