mysql - SQL 不查询文本数据
问题描述
我正在尝试查询表中的数字和字符串,但它不起作用。我知道这是一个简单的问题,但我还是 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 时,我工作正常,但答案字段不起作用。谢谢!
解决方案
显然,“是”不是你想的那样。我会首先尝试匹配:
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
为字符的值。您可以在 an 中使用它update
来从字符串中删除此类字符。
推荐阅读
- c# - 无法从程序集 System.Web 加载类型“System.Web.HttpPostedFileBase”
- c# - Physics.OverlapSphere() 返回的对撞机是否有特定顺序?
- typescript - 在受歧视的工会中没有多余的财产检查
- python - 在 Python 中聚合一个字典中的值以填充另一个字典
- php - Laravel cronjob 在每小时的 xx:10 分钟运行
- google-apps-script - Issue with Google sign in and scopes while developing spreadsheets
- android - 在 Mac 上获取 Android 密钥库证书的指纹
- php - phpcs - 防止显示“多行函数调用的左括号必须是该行的最后一个内容”
- visual-studio-code - How do I trigger suggestion(s) in VSCode in Catalina?
- json - 使用 For in String 解析 jsonString = await _ChieseAsset();