Just nu i M3-nätverket
Gå till innehåll

söker efter användare men jag få dubbelt av användare


mac3

Rekommendera Poster

Hejsan alla 

 

det är så att jag håller på skapar en sökfunktion på mylunar.se 

 

jag har lyckas att fungera nästan, problemet är jag få för lite träffar eller jätte mycket  träffar.  
 

det är en SELECT sats 
frågan 

SELECT COUNT(*),`blogg`.`userid` , `users`.`username`, `users`.`slug`, `users`.`sex`,`users`.`lastname`, `users`.`username`, `users`.`city` , `users`.`birthday`, `users`.`id` , `users`.`image`,`folders`.`system` FROM `blogg`, `users` ,`folders` WHERE `users`.`sex` IN (1,2) AND `users`.`firstname` LIKE '%%' OR `users`.`lastname` LIKE '%%' OR `users`.`username` LIKE '%%' GROUP BY `users`.`id` HAVING count(*) >1

 

jag behöver rätt antar träffar 

om  jag ta bort GROUP BY få jag 480 träffar eller GROUP BY `users`.`usersname`  få jag 10 träffar 

just nu få jag nästan rätt 50 träffar 

det är 60 poster i tabellen 

 

hjälp tack 

 

 

 

 

post-61368-0-79655500-1412330361_thumb.png

Länk till kommentar
Dela på andra webbplatser

Jari Karivainio

Hej!

För att "group by" skall fungera korrekt skulle jag först skapa ett index på ett unikt begrepp i källtabellen. Ett annat sätt är att skapa en temporär tabell med detta begrepp indexerat som sedan "joinas" med källtabellen för att få ut önskad information.

/ Jari

Länk till kommentar
Dela på andra webbplatser

Generella regeln för GROUP BY är:

 

Kolumner i SELECT-listan ska antingen vara argument till aggregat-funktioner eller vara listade i GROUP BY-en.

 

 

Dessutom borde det väl finnas join-villkor mellan tabellerna? (Eller hur hör blogg, users och folders ihop???)

Länk till kommentar
Dela på andra webbplatser

hejsan alla
 

mysql är Inte min starka sida och det är nya grejer med GROUP BY, men jag tycker det är kul. 
jag kopplar med userid. 

jag brukar inte använda join istället SELECT ifrån de tabellerna  sedan koppla jag ihop så här `users`.`id` = `blogg`.`userid`

 

ni få förklara lite bättre hur jag ska använda  GROUP BY  på bra sätt. 
 

 

users 

id int(11)         AUTO_INCREMENT 2 username varchar(100) utf8_unicode_ci     3 slug varchar(100) utf8_unicode_ci     4 firstname varchar(50) utf8_unicode_ci     5 lastname varchar(50) utf8_unicode_ci     6 image varchar(240) utf8_unicode_ci     7 note varchar(255) utf8_unicode_ci     8 url varchar(100) utf8_unicode_ci     9 imagename varchar(60) utf8_unicode_ci     10 password varchar(200) utf8_unicode_ci     11 salt varchar(200) utf8_unicode_ci     12 algorithm varchar(50) utf8_unicode_ci     13 fail varchar(60) utf8_unicode_ci     14 email varchar(60) utf8_unicode_ci     15 sex int(11)         16 birthday date         17 telephone varchar(25) utf8_unicode_ci     18 adress varchar(60) utf8_unicode_ci     19 zipcode varchar(12) utf8_unicode_ci     20 about text utf8_unicode_ci     21 status int(11)         22 online int(11)         23 ip varchar(50) utf8_unicode_ci     24 isocode varchar(8) utf8_unicode_ci     25 country varchar(50) utf8_unicode_ci     26 city varchar(50) utf8_unicode_ci     27 hostname varchar(100) utf8_unicode_ci     28 joinus date         29 lastlogin timestamp        

 

folder

1 id int(11)         AUTO_INCREMENT 2 folder varchar(255) utf8_unicode_ci       3 slug varchar(80) utf8_unicode_ci       4 position int(11)           5 post varchar(255) utf8_unicode_ci       6 userid int(11)           7 click int(11)           8 show int(11)           9 status int(11)           10 system int(11)           11 last_date datetime           12 date timestamp on update CURRENT_TIMESTAMP CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

blogg 

1 id int(11)         AUTO_INCREMENT 2 title varchar(100) utf8_unicode_ci       3 slug varchar(100) utf8_unicode_ci       4 post text utf8_unicode_ci       5 show int(11)           6 created datetime           7 last created timestamp on update CURRENT_TIMESTAMP CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 8 userid int(11)          
Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...