0

我有一个 sql 查询:

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

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

4

3 回答 3

3

您必须用反引号将列名括起来以避免语法错误。

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

如果您不使用反引号将其包装起来,它将执行算术运算:

从e中减去邮件

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


于 2013-04-10T14:40:17.517 回答
0

你的查询是对的,只需替换这个

    e-mail

这样

   `e-mail`
于 2013-04-10T14:42:29.547 回答
0

除了带有反引号或双引号的必需引用(如果启用了 ANSI 引用),我将更改 where 子句:

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

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

于 2013-04-11T06:53:31.557 回答