SELECT
case_id,
serialnumber,
DateLastHere,
Bookedindate,
DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE serialnumber like 'TTTT46'
你可以这样做
$data = array(
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
);
$this->db->select($data);
$this->db->from('cases');
$this->db->like('serialnumber','TTTT46');
$query = $this->db->get()->result_array();
如果您想在 LIKE 搜索值的两侧使用通配符:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` LIKE '%TTTT46%' ESCAPE '!'
代码点火器:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->like('serialnumber','TTTT46')
->get('cases')
如果您不想在 LIKE 搜索值上使用任何通配符:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` LIKE 'TTTT46' ESCAPE '!'
代码点火器:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->like('serialnumber','TTTT46')
->get('cases');
如果你想匹配整个字符串,那么 LIKE 没有帮助:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` = 'TTTT46'
代码点火器:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->get_where('cases', ['serialnumber' => 'TTTT46']);
如果您想显式地将 DATEDIFF 列括在标识符引号中,请使用
escape_identifiers()
:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(`DateLastHere`,`Bookedindate`)
FROM `cases`
WHERE `serialnumber` = 'TTTT46'
代码点火器:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
sprintf(
'DATEDIFF(%s,%s)',
$this->db->escape_identifiers('DateLastHere'),
$this->db->escape_identifiers('Bookedindate')
)
])
->get_where('cases', ['serialnumber' => 'TTTT46']);