Я сравниваю некоторый текст с текстовым полем, используя
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE).
Я хотел бы также сравнить строку запроса с другим текстовым полем, но выгода заключается в том, что я хочу исключить результаты, в которых нет совпадения, если поле содержит текст, но я не хочу исключать результаты, если текстовое поле пусто.
Другими словами, я не могу просто сказать:
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE) AND
MATCH(dbase-field2) AGAINST('$querystring' IN NATURAL LANGUAGE MODE)
поскольку я считаю, что это всегда будет отфильтровывать результаты, когда нет совпадения с dbase-field2, но я хочу, чтобы d-basefield2 фильтровал только когда в нем что-то есть.
Что я хотел бы сделать, это (псевдокод):
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE) AND
if (there is any text in dbase-field2) {
MATCH(dbase-field2) AGAINST('$querystring' IN NATURAL LANGUAGE MODE)
}
Есть ли способ сделать это в MYSQL, возможно, с помощью CASE END?