1

有人可以建议我对以下查询进行改进。

$q = "
    SELECT q. *
      FROM questions q, answers a
     WHERE q.questions LIKE '%".$str."%'
        OR a.answers   LIKE '%".$str."%'
       AND q.id = a.id_questions
  GROUP BY q.id
     LIMIT 10"

它用于搜索具有 >100.000 个问题和答案的数据库。

使用较少的记录工作正常,但现在......

即使限制为 10,服务器也消失了

4

1 回答 1

2

试试这个:

SELECT     q.*
FROM       questions q
INNER JOIN answers a
ON         q.id = a.id_questions
WHERE      q.questions LIKE '%yourstring%'
OR         a.answers LIKE '%yourstring%'
GROUP BY   q.id
于 2012-07-04T11:53:50.003 回答