當前位置:首頁 » 編程語言 » sql查詢數組

sql查詢數組

發布時間: 2022-07-29 09:57:04

『壹』 sql模糊查詢數組問題

假設 tab1中 有 id 及 tags 欄位

創建一個臨時表,temptab 欄位 有 originalID , context

寫一個函數 ,
StringToTable
按照 「|」分割

把 tab1 表中所有的記錄 分拆掉 例如把欄位內容「A|B|C 」分拆成3條記錄
分別是 id,A;id,B;id,C

id 欄位內容為原「A|B|C 」的id

保存在temptab 中 其中 originalID 欄位 為id; context 內容為A .....

select distinct originalID from temptab where context = 'A' or

context = 'C ' or context = 'F' 就能把 tab1 中的所符合記錄的ID 全找出來了

================================================

我是菜鳥 沒理解1樓寫的意思,能解釋一下嗎?

『貳』 在mysql資料庫中查詢在某一個范圍內的數據,數據是數組怎麼查詢

假設是數組形式如:需要查1,2,3,4,5,6的數據就用in :select * from table where num in(1,2,3,4,5,6)

如果需要查詢范圍內的,如:查詢1-6范圍內的可以:
select * from table where num >1
and num < 6

『叄』 sql server 查詢表 in一個數組

如果是一維數組:$nams=implode(',',
ArrarLIst);
select
*
from
table1
where
name
in
($names);
//注意字元查詢需要前後帶引號,數字不用
如果是多維數組:得遍歷ArrarLIst數組,取出相應的name再串聯起來

『肆』 sql查詢數組中的條件查詢

將數組分隔, and or 查詢

這個是我之前寫的一個數組查詢的,你可以看下

$where="";

$jd_name=$_POST['jdname'];

if($jd_name){

$where=$where." and (title like '%".$jd_name."%')";

}

$jgqj=$_POST['jgqj'];

if($jgqj){

$str = $jgqj;

$arr = explode(",",$str);

$len=count($arr);

if($len=="1"){

foreach($arr as $u){

$strarr = explode("_",$u);

$tj=" price between ".$strarr[0]." and ".$strarr[1]." ";

}
}else{
foreach($arr as $u){
$strarr = explode("_",$u);
$tj=$tj." price between ".$strarr[0]." and ".$strarr[1]." or ";
}

}

$ntj=rtrim($tj, "or ");

$where=$where." and (".$ntj.")";

}

$pj=$_POST['pj'];

if($pj){

$str1=$pj;

$arr1=explode(",",$str1);

foreach ($arr1 as $k){

$xj=$xj." xingji=".$k." or ";

}
$nxj=rtrim($xj, "or ");

$where=$where." and (".$nxj.")";

}

$jdtype=$_POST['jdtype'];

if($jdtype){

$str2=$jdtype;

$arr2=explode(",",$str2);

foreach ($arr2 as $ke){

$type=$type." jdtype='".$ke."' or ";

}

$ntype=rtrim($type, "or ");

$where=$where." and (".$ntype.")";

}

$ss=$_POST['ss'];

if($ss){

$str3=$ss;

$arr3=explode(",",$str3);

foreach ($arr3 as $key){

$sheshi=$sheshi." sheshi like '%".$key."%' or ";

}

$nsheshi=rtrim($sheshi, "or ");

$where=$where." and (".$nsheshi.")";

}

$pf=$_POST['pf'];

if($pf){

$where=$where.$pf;

}

$zian=$_POST['zian'];

if($zian){

if($zian=="jg"){

$order=" order by price";

}elseif($zian=="xj"){

$order=" order by xingji";

}elseif($zian=="dp"){

$order=" order by id";

}

}
$shunxu=$_POST['shunxu'];

if($shunxu){

if($shunxu=="1"){

$order=$order." asc";

}else{

$order=$order." desc";

}

}

$Text="";

$sql1=$empire->query("select classid from {$dbtbpre}enewsclass where classname='$city'");

『伍』 如何將SQL查詢結果存放到數組裡面

假設mysql中test資料庫中有個表式score,有數據,我只取第一列的數據出來:
public void mysqlConnection(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();//資料庫驅動
String url = "jdbc:mysql://localhost:3306/test";//資料庫鏈接地址
String user = "root";//用戶名
String password = "";//密碼
Connection conn = DriverManager.getConnection(url, user, password);//建立connection
Statement stmt = conn.createStatement();
conn.setAutoCommit(false);// 更改jdbc事務的默認提交方式
String sql = "select * from score";//查詢語句
ResultSet rs = stmt.executeQuery(sql);//得到結果集
conn.commit();//事務提交
conn.setAutoCommit(true);// 更改jdbc事務的默認提交方式
List<String> list=new ArrayList<String>();//創建取結果的列表,之所以使用列表,不用數組,因為現在還不知道結果有多少,不能確定數組長度,所有先用list接收,然後轉為數組
while (rs.next()) {//如果有數據,取第一列添加如list
list.add(rs.getString(1));
}
if(list != null && list.size()>0){//如果list中存入了數據,轉化為數組
String[] arr=new String[list.size()];//創建一個和list長度一樣的數組
for(int i=0;i<list.size();i++){
arr[i]=list.get(i);//數組賦值了。
}
//輸出數組
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

『陸』 如何在SQL查詢語句中查詢部分數組匹配

select * from a where charindex(『2』,id)>0 or charindex(『33』,id)>0 or charindex(『11』,id)>0
or charindex(『14』,id)>0 or charindex(『15』,id)>0 or charindex(『22』,id)>0

這樣子。應該是沒問題的

『柒』 在SQL中如何從數組中獲取值再進行查詢

----首先定義一個split函數,其作用是將字元串拆分成表
CREATEFUNCTION[fn_split]
(@SourceSqlvarchar(8000),@StrSepratevarchar(10))
RETURNS@temptable
(
[n]intNULL,
[a]varchar(100)NULL
)
AS
BEGIN
declare@iint,@nint;
set@n=0;
set@SourceSql=rtrim(ltrim(@SourceSql));
set@i=charindex(@StrSeprate,@SourceSql);
while(@i>=1)
begin
set@n=@n+1;
insert@temp([n],[a])values(@n,left(@SourceSql,@i-1));
set@SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i);
set@i=charindex(@StrSeprate,@SourceSql);
end
if(@SourceSql<>'')
begin
set@n=@n+1;
insert@temp([n],[a])values(@n,@SourceSql);
end
return
END
GO

--接下來利用這個函數將數組轉化成表,查出A的對應值
declare@Cvarchar(100),@Dvarchar(100);
set@C='a1,a2,a3,a4,a5,a6';
set@D='b1,b2,b3,b4,b5,b6';
declare@Avarchar(10),@Bvarchar(10);
set@A='a4';
select@B=t2.afromfn_split(@C,',')t1,fn_split(@D,',')t2wheret1.n=t2.nandt1.a=@A;
select@B;
--這里將得到@B=b4

--接下來就可以使用@B了
select TOP 7 * from Data_Content where title = @B order BY ID DESC

『捌』 如何數組欄位裡面進行查詢,sql語句該怎麼樣寫

數組形式? 難道是 欄位 a "1,2,3,4,5,6,7,8,9,10,13" 如果是這樣 select * from table where ','+a like '%,7,%'

『玖』 sql語句查詢匹配數組怎麼寫

偽代碼
str = "1|2|3|4"

str = str.Replace("|", ",");

string sql = "select * FROM T where [abc] in (" + str + ")";

就是select * from t where abc in (1,2,3,4)

熱點內容
linuxio文件 發布:2025-01-24 13:40:21 瀏覽:435
在excel設密碼如何取消 發布:2025-01-24 13:38:54 瀏覽:480
電腦裝存儲時不能開機 發布:2025-01-24 13:38:52 瀏覽:282
2000人同時在線的小程序需要什麼伺服器 發布:2025-01-24 13:37:17 瀏覽:850
怎麼搭建linux伺服器配置 發布:2025-01-24 13:37:16 瀏覽:110
安卓版什麼時候上線麻將模式 發布:2025-01-24 13:32:48 瀏覽:963
演算法實驗分析 發布:2025-01-24 13:20:25 瀏覽:135
安卓和ios步數哪個准確 發布:2025-01-24 13:12:13 瀏覽:290
怎麼給電腦換配置 發布:2025-01-24 13:04:04 瀏覽:920
如何修改服務密碼10086 發布:2025-01-24 12:44:27 瀏覽:513