求在一组数据内至多包含2个数据的记录个数,多谢
原数据库table存储类似于下面的信息有好多记录
通过select l1,l2,l3,l4,l5 from table 可以得到如下数据
1 2 3 4 5
1 3 8 14 16
16 18 22 24 26
15 14 23 28 30
26 28 30 31 33
现在希望从这5条记录中按如下限定输出,即$arr=array(1,8,14,20,22,24,26,29,30,31,32,33),求在$arr中至多出现2个数字的记录是什么,当然可以选择从上面得出的记录中选,如果能在select的where条件中限定就更好了。先行谢过啦!~~~
------解决方案--------------------
中间的from之后一串union all替换为你的table
- SQL code
SELECT * FROM(SELECT *,(if(find_in_set(a, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(b, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(c, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(d, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) + if(find_in_set(e, '1,8,14,20,22,24,26,29,30,31,32,33'), 1, 0) ) cnt FROM (SELECT 1 a, 2 b, 3 c, 4 d, 5 e union all SELECT 1, 3, 8, 14, 16 union all SELECT 16, 18, 22, 24, 26 union all SELECT 15, 14, 23, 28, 30 union all SELECT 26, 28, 30, 31, 33) t) s WHERE cnt<font color="#e78608">------解决方案--------------------</font><br>
- PHP code
mysql_connect(); mysql_select_db('test'); mysql_query('DROP TABLE IF EXISTS tset'); mysql_query(' CREATE TABLE IF NOT EXISTS test ( id int(11) NOT NULL AUTO_INCREMENT, l1 varchar(2) NULL, l2 varchar(2) NULL, l3 varchar(2) NULL, l4 varchar(2) NULL, l5 varchar(2) NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM '); mysql_query('TRUNCATE TABLE test'); mysql_query("insert into test (l1, l2, l3, l4, l5) values ('1', '2', '3', '4', '5'), ('1', '3', '8', '14', '16'), ('16', '18', '22', '24', '26'), ('15', '16', ' 23', '28', '3'), ('26', '28', '30', '31', '33') "); $arr = array(1,8,14,20,21,24,26,29,30,31,32,33); $s = "select '" .join("' as ch union all select '", $arr) . "'"; $sql = "select count(*) as cnt, a.* from (select id, concat(l1,',',l2,',',l3,',',l4,',',l5) as p from test) a left join ($s) b on find_in_set(b.ch, a.p) group by a.id HAVING cnt

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具