--首先把用戶輸入的幾千個product_name插入一個臨時表,然后用join去連接,這樣的話很快,比你用in,回圈快多了
select a.product_name, a.deliver from product a
INNER JOIN #tab b ON a.product_name=b.product_name
--where product_name in (用戶輸入的幾千個name)
--首先把用戶輸入的幾千個product_name插入一個臨時表,然后用join去連接,這樣的話很快,比你用in,回圈快多了
select a.product_name, a.deliver from product a
INNER JOIN #tab b ON a.product_name=b.product_name
--where product_name in (用戶輸入的幾千個name)
具體怎么寫sql呢?
不是說的很清楚了嗎?把你in里面的內容單獨插入一個表,然后用上面的連接方式連接一下
uj5u.com熱心網友回復:
用 where exists 做只查詢吧
uj5u.com熱心網友回復:
--1.創建一個臨時表,存盤用戶輸入的幾千個name
create table tmp as select 用戶輸入的幾千個name as product_name from dual;
--2.SQL實作
select a.product_name, a.deliver
from product a
where exists (select null from tmp b where b.product_name = a.product_name);
uj5u.com熱心網友回復:
--1.創建一個臨時表,存盤用戶輸入的幾千個name
create table tmp as select 用戶輸入的幾千個name as product_name from dual;
--2.SQL實作
select a.product_name, a.deliver
from product a
where exists (select null from tmp b where b.product_name = a.product_name);
create table tmp as select 用戶輸入的幾千個name as product_name from dual; 這樣的話,超過4000個字符,就會報錯,提示超長。
建議樓主把應用場景描述的更具體一些
uj5u.com熱心網友回復:
類似這樣:
select product_name, deliver from product where product_name in (
select name1 from dual union all
select name2 from dual union all
select name3 from dual union all
select name4 from dual union all
select name5 from dual union all
......
select name1000 from dual
)
name1、name2、name3……name1000,是用戶輸入的值,括號中的內容是通過輸入的值,拼出來的SQL陳述句。
uj5u.com熱心網友回復:
類似這樣:
select product_name, deliver from product where product_name in (
select name1 from dual union all
select name2 from dual union all
select name3 from dual union all
select name4 from dual union all
select name5 from dual union all
......
select name1000 from dual
)
name1、name2、name3……name1000,是用戶輸入的值,括號中的內容是通過輸入的值,拼出來的SQL陳述句。
這是為了規避in串列太長?
uj5u.com熱心網友回復:
類似這樣:
select product_name, deliver from product where product_name in (
select name1 from dual union all
select name2 from dual union all
select name3 from dual union all
select name4 from dual union all
select name5 from dual union all
......
select name1000 from dual
)
name1、name2、name3……name1000,是用戶輸入的值,括號中的內容是通過輸入的值,拼出來的SQL陳述句。
**桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......
我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......
關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......