回答
SELECT name FROM [table] WHERE id IN ([list of ids])
其中[list of ids]
是例如2,3,5,7
。
該列表是可變的...列表的大小和值不是預定義的。我即時獲得列表。 –
該列表可能是可變的。查詢從不可變。查詢是查詢。你可能應該在你做查詢的地方顯示代碼。 – Jakumi
使用IN
經營者和用逗號分隔的Roll no
的。
SELECT name
FROM yourtable
WHERE [Roll no] IN (1, 2, 3, 4, etc)
您可以使用上面顯示的IN語句。
這有幾個小問題。如果子句中的值數量太大,它可能表現不佳。
的第二個問題是,在許多開發環境,你的土地幾乎需要與項目的可變數量(或者,如果使用參數化查詢的佔位符的變量數)動態地創建查詢。如果你的代碼看起來很亂並且意味着你沒有一個好的整齊的SQL,你可以拷貝並用它來測試,這並不難。
但是示例(使用php)。
這裏IN只是用SQL動態創建的。假設卷號只能是整數,它將intval()應用於數組的每個成員,以避免在SQL中使用任何非整數值。
<?php
$list_of_roll_no = array(1,2,3,4,5,6,7,8,9);
$sql = "SELECT FROM some_table WHERE `Roll no` IN (".implode(", ", array_map ('intval', $list_of_roll_no)).")";
?>
使用mysqli綁定參數有點麻煩。這是因爲綁定參數語句需要可變數量的參數。第二個參數是要綁定的值,它期望它們通過引用傳遞。所以這裏在foreach用於生成引用數組: -
<?php
$list_of_roll_no = array(1,2,3,4,5,6,7,8,9);
if ($stmt = $mysqli->prepare("SELECT FROM some_table WHERE `Roll no` IN (".implode(",", array_fill(0, count($list_of_roll_no), '?')).")"))
{
$bind_arguments = [];
$bind_arguments[] = str_repeat("i", count($list_of_roll_no));
foreach ($list_of_roll_no as $list_of_roll_no_key => $list_of_roll_no_value)
{
$bind_arguments[] = & $list_of_roll_no[$list_of_roll_no_key]; # bind to array ref, not to the temporary $recordvalue
}
call_user_func_array(array($statement, 'bind_param'), $bind_arguments);
$statement->execute();
}
?>
另一種解決方案是將所有的值推到另一個表。可以是臨時表。然後,在表和臨時表之間使用INNER JOIN來查找匹配值。根據你已有的地方,這很容易做到(例如,我有一個php類可以很容易地插入多個記錄 - 我只是不斷地將它們傳遞給它們,並且類將它們分批並偶爾插入它們以避免重複擊中數據庫)。
- 1. 彈性搜索 - 在單個字段中搜索多個查詢
- 2. 在查詢中搜索多個列
- 3. 在查詢中搜索多個表
- 4. PHP查詢多個搜索
- 5. 查詢搜索多個列
- 6. 默認搜索查詢多個表格上的搜索查詢
- 7. mysql中的多個搜索查詢?
- 8. 查詢在mongoid搜索多個條件
- 9. 在php中向搜索查詢提交多個值
- 10. 在一個查詢中從數據庫搜索多個數組索引值
- 11. 在多個值中搜索一個HashMap
- 12. cakephp cakedc搜索插件 - 多表/多個查詢搜索
- 13. 搜索多個值
- 14. 如何在單個查詢中搜索多個子字符串
- 15. 如何在一個查詢中加入多個搜索?
- 16. 在單個報告中搜索多個MDX查詢結果
- 17. MySQL的搜索FTS VS多個查詢
- 18. 多個搜索查詢的PHP
- 19. 搜索與多個參數查詢
- 20. Ruby on Rails多個搜索查詢
- 21. Powershell多個搜索/條件查詢
- 22. vb.net搜索按鈕多個查詢
- 23. C#多個Linq查詢搜索問題
- 24. 多個領域查詢搜索
- 25. Linq搜索查詢多個表
- 26. PHP MYSQL精簡搜索多個查詢
- 27. 用子查詢搜索多個表
- 28. 嵌套彈性搜索2查詢中的多個值
- 29. 用於搜索同一列中多個值的SQL查詢
- 30. 如何選擇1參數時更改此查詢以搜索多個值?
是的,它可以。閱讀有關'IN'運算符 – Jens
當列表的大小是動態的時,我怎樣才能使用IN運算符? –
從你打電話給你的查詢? – Jens