我問這個沒有代碼,因爲我想知道很多方法如何不是返回行?我現在使用的只是不太整潔。我現在使用的是'1 = 2',它總是在任何行中返回。如何不返回行
所以我問的是如何不返回在SQL語句中的行一個很好和整潔的方式。
UPDATE:
$sql = 'SELECT `a`.`id`,
`a`.`action_id`,
DATE_FORMAT(FROM_UNIXTIME(a.`time`), "%d-%m-%Y") as `date`,
DATE_FORMAT(FROM_UNIXTIME(a.`time`), "%H:%i") as `time`,
`a`.`amount_other_callers`,
`a`.`additional_data_incident`,
`a`.`additional_data_result`,
`a`.`additional_data_messagequality_start`,
`a`.`additional_data_messagequality_end`,
`a`.`additional_data_smsquality_start`,
`g`.`name` AS gemeente
FROM `actions` a
INNER JOIN actions_geo_communities AS ac
ON ac.lnk_action_id = a.id
INNER JOIN geodata_communities g
ON ac.lnk_community_id = g.id ';
if(Auth::user()->unit_id > 0) {
$sql.= ' INNER JOIN actions_geo_units AS au
ON au.lnk_action_id = a.id ';
}
if(Session::get('tk') === "1" && Session::get('ntk') === "1")
{
$sql.= ' WHERE `a`.`aangevuld` = 0 AND `a`.time > 1388530800';
}
else if (Session::get('tk') == 1)
{
$sql.= ' WHERE `a`.`aangevuld` = 0 AND `a`.`tk` = 1 AND `a`.time > 1388530800';
}
else if (Session::get('ntk') == 1)
{
$sql.= ' WHERE `a`.`aangevuld` = 0 AND `a`.`tk` = 0 AND `a`.time > 1388530800';
}
else
{
$sql.= ' WHERE 1=2';
}
if(Auth::user()->unit_id > 0) {
$sql.= ' AND `au`.`lnk_unit_id` = ' . Auth::user()->unit_id . ' ';
}
if(!empty($not_arr)) {
$sql.= ' AND `a`.`id` NOT IN (' . implode(',', $not_arr) . ') ';
}
你能提供不需要任何數據,因此,爲什麼你強調你的數據庫
在你的情況檢查一個例子? –
不檢索行的最有效方法是不運行查詢。 –
@RagingBull我不想在這裏舉一個例子,因爲必須有一個通用的方法。 – user3398922