带 WHERE 的 MySQL 子串

标签 mysql sql select substring date-format

我在互联网上搜索过,但找不到解决问题的方法。我的查询是这样的

SELECT users.id, SUBSTRING(posts.datestr, 4, 8) 
FROM users, posts 
WHERE posts.datestr='Jan-2014'

(上面的查询被缩短了)

posts.datestr 中的值实际上是 20-Jan-2014,但我希望它是 Jan-2014,但即使添加了 SUBSTRING 代码,它仍然以某种方式显示为 20-Jan-2014

知道我做错了什么吗?

谢谢!

最佳答案

您需要为 SUBSTRING 的结果添加别名,并在您的条件中使用该别名(下例中的 shortdate)

由于您现在将在条件中使用别名,因此您不能使用 where 子句,但可以使用 having 子句

类似于:

SELECT users.id, SUBSTRING(posts.datestr, 4, 8) as shortdate 
FROM users, posts 
HAVING shortdate='Jan-2014'

关于带 WHERE 的 MySQL 子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20898366/

相关文章:

mysql - 加入以下查询?

mysql - COUNT(DISTINCT(CASE WHEN 寻找函数而不是列?MySQL

php - 检查'pdo-> query foreach'是否返回null

mysql - 创建可以从任何端点访问的新 Mysql 用户

css - 如何将类属性添加到 rails 4 中选择标签的选项?

MySQL 不接受某些数据类型

mysql - 使用 Cloud sql 代理连接到多个 CloudSQL 实例?

mysql - 在 sql 查询中使用变量

mysql - 将 count(distinct) 与复杂的选择条件 mysql 结合起来

mysql - SQL 选择查询(扩展)