2014-03-06 46 views
1

我正在尋找一種方法來從數據庫中選擇來自前三名的用戶,然後前五名包括前三名,排除之前選擇的前三名。下面是代碼:尋找一種方法來從select語句的後半部分中排除select語句的變量

$ STRSQL = 「SELECT ID FROM」 .USERS_TABLE 「UT」 .USER_MATCH_TABLE 「UMT WHERE」 .implode( 'AND',$哪裏)。 「和ut.id = umt.id_user AND(ut.a ='$ a1'或ut.b ='$ b1'或ut.c ='$ c1'或ut.d ='$ d1'或ut.e ='$ e1'或者ut.f ='$ f1'或者ut.g ='$ g1'或者ut.h ='$ h1'或者ut.i ='$ i1'或者ut.j ='$ j1'或者ut.k ='$ k1'或者ut.l ='$ l1'或者ut.m ='$ m1'或者ut.n ='$ n1'或者ut.o ='$ o1'或者ut.p = '$ p1'或者ut.q ='$ q1'或者ut.r ='$ r1'或者ut.s ='$ s1'或者ut.t ='$ t1'或者ut.u ='$ u1'或者ut.v ='$ v1'或者ut.w ='$ w1'或者ut.x ='$ x1'或者ut.y ='$ y1'或者ut.z ='$ z1'或者ut.aa =' $ aa1'或者ut.ab ='$ ab1'或者ut.ac ='$ ac1'或者ut.ad ='$ ad1'或者ut.ae ='$ ae1'或者ut.af ='$ af1'或者ut (ut.a ='$ a2'或ut.b ='$ b2'或ut.c ='$ c2'或ut.d = '$ d2'或者ut.e ='$ e2'或者ut.f ='$ f2'或者ut.g ='$ g2'或者ut.h ='$ h2'或者ut.i ='$ i2'或者ut.j ='$ j2'或者ut.k ='$ k2'或者ut.l ='$ l2'或者ut.m ='$ m2'或者ut.n ='$ n2'或者ut.o =' $ o2'或者ut.p ='$ p2'或者ut.q ='$ q2'或者ut.r ='$ r2'或者ut.s ='$ s2'或者ut.t ='$ t2'或者ut .u ='$ u2'或者ut.v ='$ v2'或者ut.w ='$ w2'或者ut.x ='$ x2'或者ut.y ='$ y2'或者ut.z ='$ z2'或者ut.aa ='$ aa2'或者ut.ab ='$ ab2'或者ut.ac ='$ ac2'或者ut.ad ='$ ad2'或者ut.ae ='$ ae2'或者ut。 af ='$ af2'或ut.ag ='$ ag2'或ut.ah ='$ ah2'或者ut.a ='$ a1'或者ut.b ='$ b1'或者ut.c ='$ c1'或者ut.d ='$ d1'或者ut.e =' $ e1'或者ut.f ='$ f1'或者ut.g ='$ g1'或者ut.h ='$ h1'或者ut.i ='$ i1'或者ut.j ='$ j1'或者ut .k ='$ k1'或者ut.l ='$ l1'或者ut.m ='$ m1'或者ut.n ='$ n1'或者ut.o ='$ o1'或者ut.p ='$ p1'或者ut.q ='$ q1'或者ut.r ='$ r1'或者ut.s ='$ s1'或者ut.t ='$ t1'或者ut.u ='$ u1'或者ut。 v ='$ v1'或者ut.w ='$ w1'或者ut.x ='$ x1'或者ut.y ='$ y1'或者ut.z ='$ z1'或者ut.aa ='$ aa1 '或者ut.ab ='$ ab1'或者ut.ac ='$ ac1'或者ut.ad ='$ ad1'或者ut.ae ='$ ae1'或者ut.af ='$ af1'或者ut.ag ='$ ag1'或ut.ah ='$ ah1')「; $ rs = $ dbconn-> Execute($ strSQL);

while ($array = $rs->FetchRow()) { 
    $ids[] = $array[0]; 
} 

第一組查詢的是AND(ut.a ='$ a1'or等)的第二部分是後的和,並且包括用於頂部三個,四個和五個的第一部分。我想解釋前五名前三名中包含的任何內容。有任何想法嗎?我想到了一個陣列,但複雜性超出了我的想象。在此先感謝

回答

0

對於我的生活,我無法理解您的查詢正在做什麼,但解決通用問題的方式是兩個查詢,並將結果聯合起來。可能是這樣的:

SELECT id 
FROM ".USERS_TABLE." ut, 
    ".USER_MATCH_TABLE." umt 
WHERE ".implode(' AND ', $where). " 
    AND ut.id = umt.id_user 
    AND (
     ut.a = '$a1' 
     OR ut.b = '$b1' 
     OR ut.c = '$c1' 
     OR ut.d = '$d1' 
     OR ut.e = '$e1' 
     OR ut.f = '$f1' 
     OR ut.g = '$g1' 
     OR ut.h = '$h1' 
     OR ut.i = '$i1' 
     OR ut.j = '$j1' 
     OR ut.k = '$k1' 
     OR ut.l = '$l1' 
     OR ut.m = '$m1' 
     OR ut.n = '$n1' 
     OR ut.o = '$o1' 
     OR ut.p = '$p1' 
     OR ut.q = '$q1' 
     OR ut.r = '$r1' 
     OR ut.s = '$s1' 
     OR ut.t = '$t1' 
     OR ut.u = '$u1' 
     OR ut.v = '$v1' 
     OR ut.w = '$w1' 
     OR ut.x = '$x1' 
     OR ut.y = '$y1' 
     OR ut.z = '$z1' 
     OR ut.aa = '$aa1' 
     OR ut.ab = '$ab1' 
     OR ut.ac = '$ac1' 
     OR ut.ad = '$ad1' 
     OR ut.ae = '$ae1' 
     OR ut.af = '$af1' 
     OR ut.ag = '$ag1' 
     OR ut.ah = '$ah1' 
     ) 
UNION ALL 
SELECT id 
FROM ".USERS_TABLE." ut, 
    ".USER_MATCH_TABLE." umt 
WHERE ".implode(' AND ', $where). " 
    AND ut.id = umt.id_user 
    AND(
     ut.a = '$a2' 
     OR ut.b = '$b2' 
     OR ut.c = '$c2' 
     OR ut.d = '$d2' 
     OR ut.e = '$e2' 
     OR ut.f = '$f2' 
     OR ut.g = '$g2' 
     OR ut.h = '$h2' 
     OR ut.i = '$i2' 
     OR ut.j = '$j2' 
     OR ut.k = '$k2' 
     OR ut.l = '$l2' 
     OR ut.m = '$m2' 
     OR ut.n = '$n2' 
     OR ut.o = '$o2' 
     OR ut.p = '$p2' 
     OR ut.q = '$q2' 
     OR ut.r = '$r2' 
     OR ut.s = '$s2' 
     OR ut.t = '$t2' 
     OR ut.u = '$u2' 
     OR ut.v = '$v2' 
     OR ut.w = '$w2' 
     OR ut.x = '$x2' 
     OR ut.y = '$y2' 
     OR ut.z = '$z2' 
     OR ut.aa = '$aa2' 
     OR ut.ab = '$ab2' 
     OR ut.ac = '$ac2' 
     OR ut.ad = '$ad2' 
     OR ut.ae = '$ae2' 
     OR ut.af = '$af2' 
     OR ut.ag = '$ag2' 
     OR ut.ah = '$ah2' 
     OR ut.a = '$a1' 
     OR ut.b = '$b1' 
     OR ut.c = '$c1' 
     OR ut.d = '$d1' 
     OR ut.e = '$e1' 
     OR ut.f = '$f1' 
     OR ut.g = '$g1' 
     OR ut.h = '$h1' 
     OR ut.i = '$i1' 
     OR ut.j = '$j1' 
     OR ut.k = '$k1' 
     OR ut.l = '$l1' 
     OR ut.m = '$m1' 
     OR ut.n = '$n1' 
     OR ut.o = '$o1' 
     OR ut.p = '$p1' 
     OR ut.q = '$q1' 
     OR ut.r = '$r1' 
     OR ut.s = '$s1' 
     OR ut.t = '$t1' 
     OR ut.u = '$u1' 
     OR ut.v = '$v1' 
     OR ut.w = '$w1' 
     OR ut.x = '$x1' 
     OR ut.y = '$y1' 
     OR ut.z = '$z1' 
     OR ut.aa = '$aa1' 
     OR ut.ab = '$ab1' 
     OR ut.ac = '$ac1' 
     OR ut.ad = '$ad1' 
     OR ut.ae = '$ae1' 
     OR ut.af = '$af1' 
     OR ut.ag = '$ag1' 
     OR ut.ah = '$ah1' 
     )