我想按名称和标记后搜索文件。
如果分配给文件的标签与您要查找的单词匹配,则该文件也将被计数。
我有三个表:
tags
id | name
tags_files
id | id_tag | id_file
files
id | name | category
现在我只在“文件”表中按名称搜索。
$how_many = $this->wpdb->get_var($this->wpdb->prepare("SELECT COUNT(*) FROM {$this->table_files} WHERE name LIKE %s AND category IN ($subcategories)", '%' . $this->wpdb->esc_like($search) . '%'));
每个文件都在“ tags_files”表中分配了标签。
如何解决这个问题?
=======================
如果需要,您可以在以下类别中添加搜索:
WHERE (tags.name LIKE '%search%' OR files.name LIK '%search%' ) AND ($this->files.category IN ($subcategories))
答案 0 :(得分:1)
SELECT files.* FROM files
LEFT JOIN tags_files ON tags_files.id_file = files.id
LEFT JOIN tags ON tags.id = tags_files.id
WHERE tags.name LIKE '%search%' OR files.name LIK '%search%'