gpt4 book ai didi

mysql - CONCAT sql 查询需要正确的格式。 Codeigniter 事件记录

转载 作者:行者123 更新时间:2023-11-29 00:10:44 26 4
gpt4 key购买 nike

我正在使用 codeigniter 的事件记录,但我意识到我可能需要一个常规的 SQL 查询来完成我想要完成的任务。有人可以看看这段代码并给我正确的格式吗?我在这里做错了什么?

我认为仅通过阅读代码就可以清楚地了解我要完成的工作,但是如果您需要的不仅仅是我使用的语法(显然是错误的),我很乐意提供代码解释。

$today = date('Y-m-d H:i:s');

$where = "type == pk_card AND (end_date > $today OR qty >= 1)";

$this->db->select('id, title, pk_card_set, pk_card_number');
$this->db->from('auctions');
$this->db->where($where);
$this->db->like("CONCAT(title, ' ', pk_card_number, ' ', pk_card_set)", $keyword);
$query = $this->db->get();

最佳答案

在您尝试通过事件记录查询的方式中,您的代码中存在许多错误

  • type == pk_card -> mysql 如果你想将任何值与你的列进行比较,你需要 single = sign not double == correct one is type = 'pk_card'

  • type == pk_card ->同样,如果你想将任何字符串值与列进行比较,你需要用标准单引号将其括起来,例如 type = 'pk_card'

  • end_date > $today 如果你想比较日期,那么你需要用单引号将日期字符串像 end_date > '$today'

现在您可以如下编写您的事件记录查询

$today = date('Y-m-d H:i:s');
$keyword='Test';
$where = "(end_date > '$today' OR qty >= 1)";
$this->db->select("id, title, pk_card_set, pk_card_number ");
$this->db->from('auctions');
$this->db->where($where,null,FALSE);
$this->db->where('type','pk_card');
$this->db->like("CONCAT(title, ' ', pk_card_number, ' ', pk_card_set)", $keyword);
$query = $this->db->get();

这将生成类似于

的查询
SELECT 
`id`,
`title`,
`pk_card_set`,
`pk_card_number`
FROM
(`auctions`)
WHERE (
end_date > '2014-08-10 12:47:06'
OR qty >= 1
)
AND `type` = 'pk_card'
AND CONCAT(
title,
' ',
pk_card_number,
' ',
pk_card_set
) LIKE '%Test%'

Active Record

关于mysql - CONCAT sql 查询需要正确的格式。 Codeigniter 事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com