mysql模糊列标题
好吧,所以我有一个搜索代码,看起来两个表。我知道这个含糊不清来自于这两个表中有一列“标题”(名为盘轨道的表)。mysql模糊列标题
现在我的修复是这样的。
$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不存在(当我只搜索其中一个表,它可以找到标题)
任何想法?
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
您应该为所有连接和选择项目使用表格信息/前缀。
只是给了我更多的错误。表前缀不起作用。 – user2373944 2013-05-11 23:47:51
运行$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%'
)
没有标题的查询工作。在我的问题中更新了全部内容。我不明白你的代码中的INNER JOIN,但是我实现了它,它不起作用。 – user2373944 2013-05-11 23:49:17
运行'DESCRIBE磁盘;'并粘贴输出。请参阅:http://dev.mysql.com/doc/refman/5.0/en/explain.html – 2013-05-13 13:58:26
一个想法是你可能需要重复LIKE语句。你能否包括具体的错误? – 2013-05-11 23:33:21
您的SQL服务器可能配置为使用区分大小写的列名称。 – Rob 2013-05-11 23:37:20
艺术家如何跟踪? – Strawberry 2013-05-11 23:37:40