gpt4 book ai didi

mysql 当找到 LIKE 时选择 0 或 1

转载 作者:行者123 更新时间:2023-11-29 07:40:16 24 4
gpt4 key购买 nike

我正在寻找一种在找到 LIKE 时返回 0/1 的方法。我让它在另一个使用 MATCH AGAINST 的查询上使用 CASE IF 语句。但我似乎无法让这个工作。例如:这适用于查询的 SELECT 部分。

SELECT *, (CASE WHEN IF((MATCH (name) AGAINST ("rubert"  IN BOOLEAN MODE))>=1, 1, 0) = 1 THEN 1 ELSE 0 END) as r2....

但我正在寻找 0 或 1 来对抗 LIKE。

等式。

SELECT *, (CASE WHEN IF (name LIKE "%rubert%") == FOUND) THEN 1 ELSE 0 END) as found FROM....

有一种感觉,我真的很接近,但似乎不太明白......

最佳答案

你把事情想得太复杂了。

SELECT name LIKE '%rubert%' FROM...

在 MySQL 中,所有 bool 值都表示为 10,并且 LIKE 返回 bool 值。无需任何工作。

您的 MATCH 查询需要 IF 的原因是 MATCH 返回 float ,而不是 bool 值;否则,这就足够了:

SELECT MATCH name AGAINST ('rubert' IN BOOLEAN MODE) AS score FROM...

为了减少它,您需要同时使用 IFCASE,这实在是太多了,因为这已经足够了:

SELECT IF(MATCH name AGAINST ('rubert' IN BOOLEAN MODE) > 1, 1, 0) AS goodenough FROM...

关于mysql 当找到 LIKE 时选择 0 或 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29293554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com