SQL SELECT查询无法在mysql中运行

问题描述 投票:0回答:3

我有一个SQL查询:

SELECT * FROM presentations_db.presenters_tbl WHERE e-mail LIKE '%@%';

它似乎不起作用,我不知道为什么。如果我删除它工作的WHERE部分,但包括所有记录。我只想要有电子邮件地址的记录。我正在使用mysql工作台。电子邮件字段是VARCHAR(45)。看起来很简单但不是......没有反馈或错误消息。结果列表甚至没有打开。

mysql sql mysql-workbench
3个回答
3
投票

您必须使用反引号包装列名以避免语法错误。

SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` LIKE '%@%

如果你不用反引号包装它,它将执行算术运算:

从e中减去邮件

导致您收到此错误消息:Unknown column 'e' in 'where clause'



0
投票

你查询是对的只是替换它

    e-mail

这样

   `e-mail`

0
投票

除了需要使用反向标记或双引号引用(如果启用了ANSI引用),我将更改where子句:

SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` IS NOT NULL;

因为你想要的只是具有电子邮件集的记录。但是,它不会检查地址的有效性。

© www.soinside.com 2019 - 2024. All rights reserved.