Mysql CONCAT sql查询需要正确的格式。代码点火器活动记录
我正在使用codeigniter的活动记录,但我意识到我可能需要一个常规的SQL查询来完成我要完成的任务。有人能看一下这个代码并给我正确的格式吗。我做错了什么 我认为很明显,我只是想通过阅读代码来实现这一点,但是如果您需要的不仅仅是我使用的语法(显然是错误的),我很乐意提供代码的解释Mysql CONCAT sql查询需要正确的格式。代码点火器活动记录,mysql,codeigniter,activerecord,concat,sql-server-group-concat,Mysql,Codeigniter,Activerecord,Concat,Sql Server Group Concat,我正在使用codeigniter的活动记录,但我意识到我可能需要一个常规的SQL查询来完成我要完成的任务。有人能看一下这个代码并给我正确的格式吗。我做错了什么 我认为很明显,我只是想通过阅读代码来实现这一点,但是如果您需要的不仅仅是我使用的语法(显然是错误的),我很乐意提供代码的解释 $today = date('Y-m-d H:i:s'); $where = "type == pk_card AND (end_date > $today OR qty >= 1)"
$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\u-card->mysql如果您想将任何值与您的列进行比较,则需要single=sign而不是double==正确的值是
type='pk\u-card'
- type==pk\u card->如果您想将任何字符串值与列进行比较,则需要使用标准单引号“如
type='pk\u 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%'
感谢您的回答,这将有助于我将来使用常规mysql查询的所有查询。谢谢。