我必须做出一个非常简单的选择,即仅更改参数。但是我必须对大量关键字重复此操作。
即
SELECT url from mytable WHERE keyword like '%{key}%'
我可以使用
Select url from mytable where keyword in ('key1', 'key2'...)
但是我需要知道哪个url是每个keyword的associated。看来MySQL不支持table parameter
,并且执行同一条语句20K次非常慢。
哪种解决方案适合此任务?
Select url, keyword from mytable where keyword in ('key1', 'key2'...)
这样,您将同时获得URL及其对应的合格关键字。但是如果您不了解更多的表,记录,重复项等信息,则可能会得到比您关心的更多的记录。
关于尝试查找20k关键字,您可能希望构建一个辅助临时表并将一个JOIN应用于该表。然后,您可以一次插入ex:一次插入100个关键字(这样会更快(或执行一些批量加载选项)),然后使用JOIN到此临时表进行查询。
最后,如果可能有多行,则可能需要
Select
url,
keyword,
count(*) timesFound
from
mytable
where
keyword in ('key1', 'key2'...)
group by
url,
keyword