mysql模糊列标题

时间:2013-05-11 23:28:20

标签: php mysql database search

好的,所以我有一个搜索代码,可以查看两个表。我知道歧义来自于两个表中都有一个列“title”(表名为disc track)。

现在我的修复就是这个。

$query="SELECT * FROM  disc, track WHERE Artist LIKE '%$trimmed%' OR disc.Title LIKE 

'%$trimmed%' OR Year LIKE '%$trimmed%' OR Genre LIKE '%$trimmed%' LIMIT 0, 30";

 Notice: Undefined index: disc.Title in C:\xampp\htdocs\search.php on line 61

我一直在各处搜索,我去的任何地方都说代码是正确的。但每当我通过搜索它说disc.Title不存在(当我只搜索其中一个表,它可以找到标题)

任何想法?

2 个答案:

答案 0 :(得分:2)

运行$query="SELECT * FROM disc, track WHERE Artist LIKE '%$trimmed%'"有效吗?

正是OR disc.Title让你失望。

您需要完成disk.Title表达式。 OR disc.Title LIKE '%$trimmed%'

就运行SQL而言,你应该明确地编写你的连接。

SELECT * 
FROM disc
INNER JOIN track
    ON disk.id = track.disk_id
WHERE (
    [disk or track?].Artist LIKE '%$trimmed%' 
    OR disc.Title LIKE '%$trimmed%'
)

答案 1 :(得分:0)

SELECT d.*, t.* FROM  disc d, track t WHERE t.Artist LIKE '%$trimmed%' OR d.Title LIKE '%$trimmed%' OR Year LIKE '%$trimmed%' OR t.Genre LIKE '%$trimmed%' LIMIT 0, 30

您应该使用表信息/前缀进行所有连接并选择项目。