我有一个SQL查询:
SELECT * FROM presentations_db.presenters_tbl WHERE e-mail LIKE '%@%';
它似乎不起作用,我不知道为什么。如果我删除它工作的WHERE部分,但包括所有记录。我只想要有电子邮件地址的记录。我正在使用mysql工作台。电子邮件字段是VARCHAR(45)。看起来很简单但不是......没有反馈或错误消息。结果列表甚至没有打开。
您必须使用反引号包装列名以避免语法错误。
SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` LIKE '%@%
如果你不用反引号包装它,它将执行算术运算:
从e中减去邮件
导致您收到此错误消息:Unknown column 'e' in 'where clause'
你查询是对的只是替换它
e-mail
这样
`e-mail`
除了需要使用反向标记或双引号引用(如果启用了ANSI引用),我将更改where子句:
SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` IS NOT NULL;
因为你想要的只是具有电子邮件集的记录。但是,它不会检查地址的有效性。