gpt4 book ai didi

mysql - SQL 不查询文本数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:16 25 4
gpt4 key购买 nike

我正在尝试查询表中的数字和字符串,但无法正常工作。我知道这是一个简单的问题,但我对 SQL 还是个新手,我只是看不出我的查询有什么问题。

这是表格:

CREATE TABLE question_answer(
sample_id VARCHAR(10),
question_id INT,
question VARCHAR(255),
answer VARCHAR(20)
);

数据如下所示:

sample_id question_id answer
001 1 Yes
002 1 No
003 1 Yes
...

和我的查询:

SELECT sample_id, question_id, answer
FROM question_answer
WHERE question_id = 1 AND answer = 'Yes'
;

当我询问 question_id 时我工作正常,但答案字段不工作。谢谢!

最佳答案

显然,"is"并不是您想象的那样。我将从尝试完全匹配开始:

WHERE question_id = 1 AND answer LIKE '%Yes%' 

如果还是不行,那么:

WHERE question_id = 1 AND answer LIKE '%Y%e%s%' 

匹配成功后,您可以尝试找出问题所在。以下是三个常见问题:

  • 尾随/前导空格
  • 相似的字符(例如零和大写 O)
  • 隐藏字符(通常来自非 ASCII 字符集)

MySQL,唉,没有regexp_replace()。如果这只是单个字符,您可以找到它。例如,如果它位于字符串的开头:

select @char := left(answer, 1)
from question_answer
where answer regexp '^[^a-zA-Z0-9 ]')
limit 1;

这会将 @char 设置为字符的值。您可以在 update 中使用它来从字符串中删除此类字符。

关于mysql - SQL 不查询文本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53214869/

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