mysql - 是否可以在 mysql 中不使用 AND 或 OR 来检查多个属性?如果不是,否认这种行为的逻辑是什么?
问题描述
请考虑下表
|id| first_name| last_name| nick_name|
查找与特定值匹配的名称的最佳方法是什么?以下查询有效,但有没有更好的方法?
select * from names where first_name = val OR last_name = val OR nick_name = val
我可以做类似的事情 -
select * from names where first_name OR last_name OR nick_name = val
如果不是,那么为什么 mysql 不允许在一个条件下对多个属性执行检查?
解决方案
您可以使用 MySQL 的 IN 函数。
MySQL IN() 函数在给定参数中找到匹配项。
select * from names where val IN(first_name,last_name,nick_name);
这不起作用:
select * from names where first_name OR last_name OR nick_name = val
因为这总是会导致错误的情况。
推荐阅读
- hadoop - hive-site.xml 中缺少 Hive Metastore 数据库详细信息
- machine-learning - 训练pytorch模型后如何丢弃分支
- apache-kafka - 我需要在 Azure Kafka for HD Insight 中哪里获取 Kafka Connect 分布式 jar 和插件?
- batch-file - ping 多个 IP 地址并写入文件
- r - 有没有办法在同一个 ggplot 上使用 2 个色标?
- postgresql - Heroku:在 postgres 上启用 MTLS ......失败了!未找到
- r - finding combinations of elements from two matrices
- html - 拒绝加载样式表(元标记不起作用)
- python - 如何将python脚本.py文件转换为exe而不在其中嵌入python解释器
- python - PyCharm 更改 Manjaro 下快捷键的键盘布局