这是我的mysql查询:
SELECT *
FROM wp_bp_group_documents
WHERE group_id = 4
AND id IN (2)
AND (file LIKE '%jpg'
OR file LIKE '%png'
OR file LIKE '%jpeg'
OR file LIKE '%gif')
ORDER BY created_ts DESC LIMIT 0, 20
这是我的表结构:
'id', 'user_id', 'group_id', 'created_ts', 'modified_ts', 'file', 'name', 'description', 'featured', 'download_count'
'1', '1', '1', '1301587327', '1301587327', '1301587327-NewApplicationForm.pdf', 'Tenancy application form', 'This is a tenancy application form. Please download and fill in.', '0', '0'
'2', '1', '4', '1301934439', '1302005432', '1301934439-bupa_large.png', 'BUPA Stand Image', 'asd', '0', '0'
所以从这个查询中我希望它能找到数据库中的第二条记录,但它不会返回任何值。
没有mysql错误。我只是想知道我是否正确完成了查询?
谢谢
答案 0 :(得分:4)
file
是一个MySQL关键字。尝试在反引号中包装file
名称:`file
`。
答案 1 :(得分:1)
您的id列似乎是一个字符串,但您在数组中指定了一个整数。这可能是问题吗?
答案 2 :(得分:0)
稍微关闭OP的主题,但是你知道(对吗?)当你在任何选择中包含“like”时,MySQL别无选择,只能通读 整个表 < / strong>即可。为了避免这种情况,一些人试图确保像文件类型这样的值 - 根据定义,已经提供自己的分类法的东西 - 被分解为非唯一索引。
如果您决定这样做,您的牌桌会突然变得不规范。为了补救那个,该表需要另一个列,比如说`pictype`,你要编制索引。对我来说,无论如何,这是一个更强大的桌面设计,但它只是MHO。