現在有2個字串,例如
A字串:1-a,1-b,2-a,2-c
B字串:12-a,23-b,24-c
按逗號分隔后:
A中有:1-a,1-b,2-a,2-c 4個小字串
B中有:12-a,23-b,24-c 3個小字串
回圈比較橫杠后面的字串是否一致,B中有12-a,A中有 1-a, 因為-后面都是a,在比較前面字串,12是以1開頭,所以1-a和12-a匹配,A和B中只要有一個匹配,符合條件就行。函式回傳1。否則回傳0。
上面例子中,1-a和12-a是匹配的,2-c和24-c是匹配的,只要滿足一個匹配就回傳1。
1-a,1-b,2-a,2-c 212-a,23-b,124-c 回傳1
1-a,1-b,2-a,2-c 312-a,23-b,224-c 回傳1
1-a,1-b,2-a,2-c 312-a,23-b,124-c 回傳0
java代碼實作如下:
public static int compare(String A, String B) {
String[] arrA = A.split(",");
String[] arrB = B.split(",");
for (String child1 : arrA) {
for (String child2 : arrB) {
String[] split1 = child1.split("-");
String[] split2 = child2.split("-");
if(split2[1].equals(split1[1]) && split2[0].startsWith(split1[0])) {
return 1;
}
}
}
return 0;
}
那位大佬寫下mysql函式的實作,因為要在sql陳述句中進行查詢,所以沒法用java,這里我只是寫個例子。
uj5u.com熱心網友回復:
有沒有大佬知道怎么寫這個函式的,拜托了uj5u.com熱心網友回復:
沒人,自己頂一下uj5u.com熱心網友回復:
樓主你好,mysql是用來查詢的,你至少要提供你的表結構和你想要的結果吧uj5u.com熱心網友回復:
用正則,A在資料庫中且是多行資料,則需要一個函式,將A處理成正則運算式,再匹配B,回傳true|false.A不在資料庫或只有一行,就用程式處理成正則,再執行陳述句
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/55757.html
標籤:MySQL
上一篇:mysql遞回查詢統計
下一篇:Jq畢業作業設計
