FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Jag borde kanske maila deras support....
Flera av mina siter på loopia har idag delvis slutat fungera... Det är mysqlfrågor som jag får error på (som har körts klockrent i över ett år innan). Ett exempel är t.ex: Unknown column 'p.editUser' in 'on clause' SELECT u.uname, u.id, u.sex, u.city, u.score, u.numWarnings, u.numPosts, u.createDate as regDate, u.signature, p.*, pt.text, ue.uName as editUname FROM (com_posts p, users u, com_post_texts pt LEFT JOIN users ue ON (ue.id = p.editUser AND p.editUser > 0)) WHERE p.threadId = 1033 AND u.id = p.createUser AND pt.postId = p.postId ORDER BY p.createDate ASC LIMIT 0, 20 Någon mer som fått problem eller vet vad det kan bero på? Är det något dumt i min syntax som inte är godkänt i någon ny mysql-version eller liknande? Och ja - tabellen och fältet ifråga finns och det är rättstavat. |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
STORT tack, det hjälpte!
|
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Loopia skulle väl uppdatera sina mysqlservrar till 5.någonting mellan 21 & 22 nov tror jag
|
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Medlem
|
Citat:
Citat:
MySQL har publicerat en lista på ändringar mellan 4.1 och 5.0 på: http://dev.mysql.com/doc/refman/5.0/...-from-4-1.html Du bör kontrollera vilka kontaktadresser du har angett för ditt konto hos oss då vi har skickat ut information gällande uppgraderingen till alla berörda konton. |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Emil - ett tips är att ni skickar ut mail även till ÅF om detta, eftersom mina kunder kanske inte har något tekniskt intresse/förstånd själva.
Kan inte ni skicka en kopia på detta brev till info snabel-a deserveit.se? Det vore välkommet. Men i övrigt... Problemet då som tråden handlar om - det är alltså en bugg eller handlar det om att mysql helt enkelt vill ha någon annan typ av logik i frågesyntaxen? Om det är en bugg (som jag uppfattar det som) så kan man ju tycka att mysql-versionen var rätt kass. |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
|
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Medlem
|
Citat:
Jag anser personligen att bakåtkompatibilitet är att föredra, särskilt när det gäller hur fråge-syntaxen tolkas. Dock verkar det som om MySQL anser att den tidigare syntaxen var en bugg även om den ofta användes. Buggen som Kjette länkade har rätt mycket matnyttig information och är rekommenderad läsning: Citat:
Citat:
It is not a bug. Now MySQL 5 is in compliance with some rules of SQL that I'm not very familiar with. By adding the parenthesis we are giving priority to the implicit join expressed by the comma; after that JOIN, LEFT JOIN, RIGHT JOIN works the same way it used to work in previous version. [/quote] Sammanfattningsvis är orsaken att MySQL helt har skrivit om SQL-tolken (optimizer) för att mer strikt följa SQL-standarden samt bättre hantera mer komplicerade frågor (där det exempelvis finns flera nyckelfält på tabeller). <!--QuoteBegin--http://dev.mysql.com/doc/refman/5.0/en/join.html[/i] SELECT u.uname, u.id, u.sex, u.city, u.score, u.numWarnings, u.numPosts, u.createDate as regDate, u.signature, p.*, pt.text, ue.uName as editUname FROM (com_posts p, users u, com_post_texts pt LEFT JOIN users ue ON (ue.id = p.editUser AND p.editUser > 0)) WHERE p.threadId = 1033 AND u.id = p.createUser AND pt.postId = p.postId ORDER BY p.createDate ASC LIMIT 0, 20[/quote] Tidigare (4.x) kördes ihopslagningen (JOIN) av com_posts, users (u), com_post_texts innan users (ue), men numera (5.x) slås com_post, users (ue) ihop innan users (u) och com_post_texts. Om jag tolkar MySQL-manualen rätt borde följande återfå det beteende som var innan 5.0.1: Kod:
SELECT u.uname, u.id, u.sex, u.city, u.score, u.numWarnings, u.numPosts, u.createDate as regDate, u.signature, p.*, pt.text, ue.uName as editUname FROM ((com_posts p, users u, com_post_texts pt) LEFT JOIN users ue ON (ue.id = p.editUser AND p.editUser > 0)) WHERE p.threadId = 1033 AND u.id = p.createUser AND pt.postId = p.postId ORDER BY p.createDate ASC LIMIT 0, 20 |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
Det är lika bra att inse... Jag är helt enkelt inte tillräckligt bra på mysql om man gräver på djupet...
![]() Jag ser inte riktigt logiken i varför det blir som det blir och varför det inte blev så förut, men det kommer väl med tiden... ![]() Stort tack till er iaf! |
|||
![]() |
![]() |
Svara |
|
|