Reputation: 29
SELECT
case_id,
serialnumber,
DateLastHere,
Bookedindate,
DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE serialnumber like 'TTTT46'
Upvotes: 0
Views: 725
Reputation: 47864
If you want wildcards on both sides of the LIKE search value:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` LIKE '%TTTT46%' ESCAPE '!'
CodeIgniter:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->like('serialnumber','TTTT46')
->get('cases')
If you don't want any wildcards on the LIKE search value:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` LIKE 'TTTT46' ESCAPE '!'
CodeIgniter:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->like('serialnumber','TTTT46')
->get('cases');
If you want to make a whole string match, then LIKE is not helpful:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(DateLastHere,Bookedindate)
FROM `cases`
WHERE `serialnumber` = 'TTTT46'
CodeIgniter:
$this->db
->select([
'case_id',
'serialnumber',
'DateLastHere',
'Bookedindate',
'DATEDIFF(DateLastHere,Bookedindate)'
])
->get_where('cases', ['serialnumber' => 'TTTT46']);
If you want to explicitly wrap the DATEDIFF columns in identifier quotes, use escape_identifiers()
:
SELECT `case_id`, `serialnumber`, `DateLastHere`, `Bookedindate`, DATEDIFF(`DateLastHere`,`Bookedindate`)
FROM `cases`
WHERE `serialnumber` = 'TTTT46'
CodeIgniter:
$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']);
Upvotes: 0
Reputation: 19882
You can do it like this
$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();
Upvotes: 3