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 に答える