例子中,我越來越從我的分貝2變量($ V1,V2 $)編程WHERE部分SQL
SELECT * FROM mytable WHERE id=$1 AND $v2
但在另一個例子中即時得到來自DB(3變量$ V1,V2 $, $ v3)在相同的查詢導致我像它一樣進步。在這種情況下我怎麼能計劃,使SQL查詢語句
編輯
WHERE id=$v1 AND $v2 AND $v3 // i want to add it And conditions automaticly
例子中,我越來越從我的分貝2變量($ V1,V2 $)編程WHERE部分SQL
SELECT * FROM mytable WHERE id=$1 AND $v2
但在另一個例子中即時得到來自DB(3變量$ V1,V2 $, $ v3)在相同的查詢導致我像它一樣進步。在這種情況下我怎麼能計劃,使SQL查詢語句
編輯
WHERE id=$v1 AND $v2 AND $v3 // i want to add it And conditions automaticly
如果你想選擇多個ID值,請使用條件:
SELECT * FROM mytable WHERE id IN ($v1, $v2, $v3)
編輯:要求靈活的方法來增加值:
假設設置了此查詢通過一個函數,這個函數將接收應該在where子句中的所有ID值。喜歡的東西:
<?php
$example_ids = array(1, 5, 7, 15, 22);
wherein($example_ids)
function wherein($ids){
// Select part
$query = "SELECT * FROM mytable ";
// Where statement
$where = " WHERE id IN (";
// For loop to use each value sent
// as a value in IN (...
for ($i=0; $i < count($ids); $i++) {
// Eg: $i = 0
// $ids[$i] = 1
//
// So:
// WHERE id IN (1
$where .= $ids[$i];
// If its not the last value then
// add a comma for SQL syntax
if ($i < count($ids) - 1)
/// Where id IN (1,
$where .= ",";
}
// At the end of the loop, $where must be
// something like:
// WHERE id IN (1,5,7,15,22
//
// Once again, for SQL syntax, the close)
$where .= ")";
// Finaly, the last step, putting all together:
// SELECT * FROM mytable WHERE id IN (1,5,7,15,22)
$query .= $where;
}
但另一次我會得到8值,我想把它們放在那裏與在sql查詢中的程序我該如何做 – user3301042
然後您必須: 1.組織數組中的ID 2.在for循環中,使用逗號連接每個變量 3.檢查最後一個值以防止SQL語法錯誤 4.關閉哪裏clausule 5.連接主要查詢與此where變量。 我會更新代碼。 –
好吧,我得到你的答案是我需要的。更新代碼 – user3301042
如果您需要找到包含您的任何變量的任何記錄,您可以使用OR
如下
SELECT * FROM mytable WHERE id = $v1 OR id = $v2 OR id = $v3
好吧,我會使用或butb真正的問題是不同的 – user3301042
什麼是真正的問題呢? – Fabio
我的問題不清楚嗎?另一次我會得到8值,另一個只是2我想要添加它或自動條件 – user3301042
你想知道'id'等於多個值? '$ v2'或'$ v3'中有什麼?你是否在這些變量中添加了SQL字符串條件?或實際數據? – Brad
'id = x和y'沒有什麼意義。 'id' supposd是否等於這兩個值,或者'id'是否等於這兩個值的邏輯AND? –
我從來沒有使用和條件我再次寫id = $ v2.whatever這不是問題的問題是我怎樣才能在sql查詢編程 – user3301042