簡體   English   中英

MySQL搜索多個表並在一個表中搜索多個列

[英]MySQL search multiple tables and in one table search multiple columns

我構建了一個查詢,用於在多個表中搜索一個值。 它原樣很好用,但我想在“customers”表中搜索多個字段(另外還有“last_name”和“company_name”)。

$sql = "SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%'
        UNION
        SELECT name as name FROM events WHERE name LIKE '%" . $keyword . "%'
        UNION
        SELECT product_name as name FROM products WHERE product_name LIKE '%" . $keyword . "%'";

我是否只為每個附加字段添加更多單獨的行?

"SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%'
    UNION
SELECT last_name as name FROM customers WHERE last_name LIKE '%" . $keyword . "%'
    UNION
SELECT company_name as name FROM customers WHERE company_name LIKE '%" . $keyword . "%'

它似乎不是最有效的,所以想檢查。 謝謝!

有一個有效的解決方案。 由於您只收集名稱,因此將它們收集到三個不同的變量中。 並使用后端語言,合並這3個數組。

    example for php, 
    $sql1 = "SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%'; 
    //getting first array result by this query
    $sql2 = "SELECT name as name FROM events WHERE name LIKE '%" . $keyword . "%'";
    //getting second array result by this query
    $sql3 = "SELECT product_name as name FROM products WHERE product_name LIKE '%" . $keyword . "%'"; 
    //getting third array result by this query

    $result = array_merge($sql1, $sql2, $sql3)

如果您可以通過后端語言管理數據,則此解決方案將適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM