php - MYSQL联合展示

标签 php mysql union

我正在使用查询在两个表(轨道和艺术家)中进行搜索:

SELECT trackID, title
FROM tracks WHERE title LIKE '%$s%'
LIMIT 5
UNION
SELECT artistID, name
FROM artists WHERE name LIKE '%$s%'
LIMIT 5";

我使用 mysql_num_rows($result) 来显示这个查询的结果,但我不知道如何正确显示它。 因为当行来自艺术家但保持相同顺序时,我希望输出结果不同。

我希望这是清楚的,提前致谢!!

最佳答案

您可以使用另一列来标识结果行,例如

SELECT trackID AS id, title AS title, 'track' AS result_type
FROM tracks WHERE title LIKE '%$s%'
LIMIT 5
UNION
SELECT artistID AS id, name AS title , 'artist' AS result_type
FROM artists WHERE name LIKE '%$s%'
LIMIT 5;

/* $result= fetch results from query*/
   foreach($result as $row){
     if($row['result_type'] =='track'){
    /*  your code */
     }
     if($row['result_type'] =='artist'){
    /* your code */
     }
   }

关于php - MYSQL联合展示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742300/

相关文章:

PHP 包含 mysql 查询,使用 header 来防止查询重新执行,但是在哪里回显通知?

mysql - 使用 Spring JDBC 创建多个数据库或模式

mysql - ORDER BY UPPER(列)是错误的

mysql - 数据步骤/SQL 加入/合并/联合 2 个数据集/表并删除相同的行/观察

php - 为什么 "-8+etch15"附加到该客户的 PHP 版本字符串中?

php - .htaccess 在本地主机上给出 500 错误

php - 对 Laravel 中的所有请求进行全局验证

mysql - 何时在MySQL中使用单引号,双引号和反引号

sql - Postgresql:从多个表(具有相同字段)查看

sql - 重新使用选择子查询/结果