【问题标题】:Postgres combining two where clausesPostgres 结合两个 where 子句
【发布时间】:2020-09-12 14:09:08
【问题描述】:

我有一个有效的查询:

    "SELECT * FROM contract LEFT OUTER JOIN con_name on contract._id = con_name.contract WHERE $search_type ILIKE '%$search_word%' ORDER BY $sort_type ASC  ".

但我想添加另一个 where 子句,例如:

    WHERE(
  $times_type >= $from_date
  AND $times_type <=  $to_date)

请问如何将这两个语句合并到一个查询中?

【问题讨论】:

  • 旁注:学习使用参数化查询。

标签: php sql postgresql codeigniter psql


【解决方案1】:

如果您希望 WHERE 条件同时有效,只需将 WHERE 条件与 ANDs 连接即可。

SELECT * 
FROM contract LEFT OUTER JOIN con_name on contract._id = con_name.contract
WHERE $search_type ILIKE '%$search_word%' AND $times_type >= $from_date AND $times_type <=  $to_date ORDER BY $sort_type ASC

如果一个为真就足够了,你可以使用括号和OR

SELECT *
FROM contract LEFT OUTER JOIN con_name on contract._id = con_name.contract
WHERE $search_type ILIKE '%$search_word%' OR ($times_type >= $from_date AND $times_type <=  $to_date) ORDER BY $sort_type ASC

【讨论】:

  • 请我收到以下错误:` 错误:运算符不存在:没有时区的时间戳 >= 整数第 1 行: ...act WHERE 组织 ILIKE '%sds%' AND pub_date >= 2020 -05... ^ 提示:Nooperator 匹配给定的名称和参数类型。您可能需要添加显式类型转换。`
猜你喜欢
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 2014-04-04
相关资源
最近更新 更多