似乎无法使SQL语句更短吗?

我一直在试图找到一种使该查询容易又简短的方法,但是我似乎找不到解决方法。使用我制作的烂摊子,由于效率低下,给了我很多PHP错误。

我正在使用MySQL,它用于我正在创建的一个小型网站。

SELECT S.id,S.datum,L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%fortress%' AND U.fortress41 IN ('cijfer41','cijfer42','cijfer43','cijfer44','cijfer45','cijfer46','cijfer47','cijfer48','cijfer49','cijfer410','cijfer411','cijfer412','cijfer413','cijfer414','cijfer415','cijfer416') OR U.fortress42 IN ('cijfer41','cijfer416') OR U.fortress43 IN ('cijfer41','cijfer416') OR U.fortress31 IN ('cijfer31','cijfer32','cijfer33','cijfer34','cijfer35','cijfer36','cijfer37','cijfer38','cijfer39','cijfer310','cijfer311','cijfer312','cijfer313','cijfer314','cijfer315','cijfer316') OR U.fortress32 IN ('cijfer31','cijfer316') OR U.fortress33 IN ('cijfer31','cijfer316') OR U.fortress21 IN ('cijfer21','cijfer22','cijfer23','cijfer24','cijfer25','cijfer26','cijfer27','cijfer28','cijfer29','cijfer210','cijfer211','cijfer212','cijfer213','cijfer214','cijfer215','cijfer216') OR U.fortress22 IN ('cijfer21','cijfer216') OR U.fortress23 IN ('cijfer21','cijfer216')
UNION SELECT S.id,L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%pirateship%' AND U.pirateship41 IN ('cijfer41','cijfer416') OR U.pirateship42 IN ('cijfer41','cijfer416') OR U.pirateship43 IN ('cijfer41','cijfer416') OR U.pirateship31 IN ('cijfer31','cijfer316') OR U.pirateship32 IN ('cijfer31','cijfer316') OR U.pirateship33 IN ('cijfer31','cijfer316') OR U.pirateship21 IN ('cijfer21','cijfer216') OR U.pirateship22 IN ('cijfer21','cijfer216') OR U.pirateship23 IN ('cijfer21',L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%farm%' AND U.farm41 IN ('cijfer41','cijfer416') OR U.farm42 IN ('cijfer41','cijfer416') OR U.farm43 IN ('cijfer41','cijfer416') OR U.farm31 IN ('cijfer31','cijfer316') OR U.farm32 IN ('cijfer31','cijfer316') OR U.farm33 IN ('cijfer31','cijfer316') OR U.farm21 IN ('cijfer21','cijfer216') OR U.farm22 IN ('cijfer21','cijfer216') OR U.farm23 IN ('cijfer21',L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%techcity%' AND U.techcity41 IN ('cijfer41','cijfer416') OR U.techcity42 IN ('cijfer41','cijfer416') OR U.techcity43 IN ('cijfer41','cijfer416') OR U.techcity31 IN ('cijfer31','cijfer316') OR U.techcity32 IN ('cijfer31','cijfer316') OR U.techcity33 IN ('cijfer31','cijfer316') OR U.techcity21 IN ('cijfer21','cijfer216') OR U.techcity22 IN ('cijfer21','cijfer216') OR U.techcity23 IN ('cijfer21',L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%frontier%' AND U.frontier41 IN ('cijfer41','cijfer416') OR U.frontier42 IN ('cijfer41','cijfer416') OR U.frontier43 IN ('cijfer41','cijfer416') OR U.frontier31 IN ('cijfer31','cijfer316') OR U.frontier32 IN ('cijfer31','cijfer316') OR U.frontier33 IN ('cijfer31','cijfer316') OR U.frontier21 IN ('cijfer21','cijfer216') OR U.frontier22 IN ('cijfer21','cijfer216') OR U.frontier23 IN ('cijfer21',L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%westeros%' AND U.westeros41 IN ('cijfer41','cijfer416') OR U.westeros42 IN ('cijfer41','cijfer416') OR U.westeros43 IN ('cijfer41','cijfer416') OR U.westeros31 IN ('cijfer31','cijfer316') OR U.westeros32 IN ('cijfer31','cijfer316') OR U.westeros33 IN ('cijfer31','cijfer316') OR U.westeros21 IN ('cijfer21','cijfer216') OR U.westeros22 IN ('cijfer21','cijfer216') OR U.westeros23 IN ('cijfer21',L.gebruikersnaam FROM spelen S JOIN uitslagen U ON S.datum = U.datum JOIN logingegevens L ON S.gebruikersnaam = L.id WHERE islands LIKE '%pallettown%' AND U.pallettown41 IN ('cijfer41','cijfer416') OR U.pallettown42 IN ('cijfer41','cijfer416') OR U.pallettown43 IN ('cijfer41','cijfer416') OR U.pallettown31 IN ('cijfer31','cijfer316') OR U.pallettown32 IN ('cijfer31','cijfer316') OR U.pallettown33 IN ('cijfer31','cijfer316') OR U.pallettown21 IN ('cijfer21','cijfer216') OR U.pallettown22 IN ('cijfer21','cijfer216') OR U.pallettown23 IN ('cijfer21','cijfer216')  
ORDER BY 'id'  DESC

我只需要更短一些,以便可以在PHP中运行它。

mydisable 回答:似乎无法使SQL语句更短吗?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163219.html

大家都在问