mysql select query - 将一个字段与另一个字段匹配

标签 mysql sql

我正在尝试查找具有以下情况的记录。

ID |     name   |      email
 1      Robert        robert@gmail.com
 2      William       bill@gmail.com
 3      Michael       michael@gmail.com
 4      Micahel       mike@gmail.com

根据上表,我想找到“email”字段中包含“name”的记录,这里记录1和3应该是输出而不是2和4。有什么办法可以做这个比较?

我尝试阅读有关正则表达式的内容,但找不到任何内容。如果它是相同值的比较,那将是直截了当的,但我对此一无所知。我想到了 LIKE 但看起来这不能有字段名称。

最佳答案

确切的语法将取决于您希望如何定义关系。

您是否在电子邮件地址中的任何位置查找姓名? (这会很慢)

select id,name,email
from your_table
where email like concat('%',name,'%')

就在电子邮件地址的开头?

select id,name,email
from your_table
where email like concat(name,'%')

就在@符号之前?

select id,name,email
from your_table
where email like concat(name,'@%')

关于mysql select query - 将一个字段与另一个字段匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093630/

相关文章:

php - 如果选择了多个值,数组不会从 mysql 返回任何内容

sql - GRANT SELECT 根本不起作用

sql - 通过在 SSIS 中运行 excel VBA 宏来自动化流程

java - 无法在 Java 中运行多个 SQL 更新语句

sql - 计数所有状态和特定状态与分区的数量

sql - MS Access 查询中的语法错误?

jquery - 在 jquery mobile 本地存储 json

MySQL : Using MIN and GROUP BY

mysql - Delphi ADO + MySQL + Developer Express Grid

php - 如何使用 backbone.js 和 php 将数据保存到 mysql 数据库中