在MySQL中将通过函数的列设置为变量

在MySQL中将通过函数的列设置为变量,mysql,Mysql,我正在做一个查询来搜索MySQL中的一个表,到目前为止我已经做到了: SELECT strip_tags(html) FROM threads WHERE strip_tags(html) LIKE :searchQuery ORDER BY id; 如您所见,这需要html通过strip_标记2次,因此执行查询需要更长的时间。我计划进一步扩展查询,这样我就可以更多地使用strip_标记 有没有办法用另一种方式做到这一点 谢谢。一旦可以使用子查询,就可以使用功能条标签 SELE

我正在做一个查询来搜索MySQL中的一个表,到目前为止我已经做到了:

SELECT strip_tags(html)
FROM threads
WHERE
    strip_tags(html) LIKE :searchQuery
ORDER BY
    id;
如您所见,这需要html通过strip_标记2次,因此执行查询需要更长的时间。我计划进一步扩展查询,这样我就可以更多地使用strip_标记

有没有办法用另一种方式做到这一点

谢谢。

一旦可以使用子查询,就可以使用功能条标签

SELECT stripped FROM (SELECT strip_tags(html) as stripped,id FROM threads)t WHERE stripped LIKE :searchQuery ORDER BY id;
或者使用下面这样的

SELECT strip_tags(html) as stripped FROM threads HAVING stripped LIKE :searchQuery ORDER BY id;

您是否定义了一个名为strip_tags的函数?mysql中没有。是的,我有一个用户定义的函数。来自尼斯!然后可能会执行子查询,这样您只需要调用strip_标记一次,比如SELECT tripped FROM SELECT strip_tagshtml as stripped,id FROM threadst,其中stripped像:searchQuery ORDER BY id;或者您可以使用HAVING子句,如SELECT trip_tagshtml,从已剥离的线程中剥离,如:searchQuery ORDER BY id;感谢您的回答,但遗憾的是,我仍然遇到了与以前相同的错误,“where子句”中的未知列“stripped”。您是否事先验证了查询是否有效?这可能是我的错。