【问题标题】:MySQL syntax error when searching from a View从视图搜索时出现 MySQL 语法错误
【发布时间】:2013-06-26 09:09:30
【问题描述】:

如果有人可以在这里帮助我,我将不胜感激。

所以我创建了一个视图“ip_range”,它基本上是一个ip范围,列是

INET_ATON(ip) | (INET_ATON(ip)+(前缀))

现在,当我尝试在视图中搜索位于两个范围之间的条目时,我不断收到错误消息。这就是我在查询中输入的内容

 select * from ip_range WHERE "2624412513" BETWEEN INET_ATON(ip) AND (INET_ATON(ip)+(prefix);

我很确定这是语法错误之类的,但不确定。

对不起,伙计们没有更清楚,我的查询中有括号。当我运行查询时,我得到“空集(0.00 秒),即使我看到它位于范围内。

select * from ip_range WHERE "2624412513" BETWEEN 'INET_ATON(ip)' AND '(INET_ATON(ip)+(prefix))';
Empty set (0.00 sec)

这是更新后的代码,

谢谢。

【问题讨论】:

  • 末尾缺少右括号。

标签: mysql syntax ip


【解决方案1】:

你最后缺少括号

 select * from ip_range WHERE "2624412513" BETWEEN INET_ATON(ip) AND (INET_ATON(ip)+(prefix));

或者试试这个

  select * from ip_range WHERE INET_ATON(ip) < 2624412513 
                          AND  INET_ATON(ip)+(prefix) > 2624412513

【讨论】:

  • 我很抱歉这个错误。我忘了把括号放在我的主题的最后。但是当我运行查询时,我没有得到任何结果。
  • 感谢您的回复,我仍然没有得到正确的答案。当我使用 select * from ip_range WHERE 'INET_ATON(ip)'
  • 那么这个功能不对,可能是INET_ATON(ip+prefix)或者?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
相关资源
最近更新 更多