Avatar billede area404 Nybegynder
21. juni 2009 - 14:03 Der er 10 kommentarer

Select uniqe?

Hej med jer!

Findes der en måde hvorpå man kan undgå at udlæse poster som findes flere gange i databasen? Altså vis SQL-strengen kun udlæse unikke poster?

Vh Ron
Avatar billede showsource Seniormester
21. juni 2009 - 14:12 #1
SELECT DISTINCT(feltnavn)

SELECT * FROM tabel GROUP BY feltnavn
Avatar billede area404 Nybegynder
21. juni 2009 - 14:25 #2
Har prøvet select distinct, så får jeg fejl, selv om jeg laver order by dato:

ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
The text data type cannot be selected as DISTINCT because it is not comparable.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
The text data type cannot be selected as DISTINCT because it is not comparable.
Avatar billede showsource Seniormester
21. juni 2009 - 15:05 #3
Det her virker fint for mig ( mysql db og php ):

$sql = "SELECT DISTINCT(navn) FROM tabel ORDER BY navn ASC";
echo $sql;

echo "<p>";

$row = mysql_query($sql) or die (mysql_error());
echo mysql_num_rows($row);


Men måske du skal bruge:

SELECT DISTINCT(navn) as name FROM tabel ORDER BY name ASC
Avatar billede tofferman Nybegynder
21. juni 2009 - 15:30 #4
Prøv lige at lægge din sql-sætning ind, så vi kan se den.
Avatar billede area404 Nybegynder
23. juni 2009 - 13:36 #5
SelectCommand="SELECT * FROM [RSS] WHERE (([Channel_titel] LIKE '%' + @indhold + '%') ORDER BY [pubdate] DESC"
Avatar billede tofferman Nybegynder
23. juni 2009 - 21:13 #6
SelectCommand="SELECT DISTINCTROW * FROM [RSS] WHERE [Channel_titel] LIKE '%' + @indhold + '%' ORDER BY [pubdate] DESC"
Avatar billede area404 Nybegynder
24. juni 2009 - 21:27 #7
tofferman, det fungerer ikke... Incorrect syntax near the keyword 'FROM'.

SelectCommand="SELECT DISTINCT * FROM [RSS] WHERE...
giver også fejl: The text data type cannot be selected as DISTINCT because it is not comparable.

Det hænger nok sammen med at man ikke kan lave en compare på dato og div. antre sql typer?
Avatar billede arne_v Ekspert
25. juni 2009 - 02:25 #8
Du kan sagtens sammenligne datoer.

Men xLOB's er et problem i mange SQL dialekter.

(i MySQL er det TEXT, MEDIUMTEXT, LONGTEXT, BLOB, MEDIUMBLOB og LONGBLOB)
Avatar billede area404 Nybegynder
25. juni 2009 - 15:07 #9
Yes - det fandt jeg også udaf..
dvs. når jeg bruger SelectCommand="SELECT DISTINCT * FROM [RSS] WHERE...
Så sammenligner den alle felter i en post for at sikre unikke udtræk? Forstået på den måde at 2 poster i en tabel godt kan have f.eks. samme overskrift, men ikke samme dato?

For point smid et svar :-)
Avatar billede arne_v Ekspert
26. juni 2009 - 02:22 #10
Jeg tror at du skal angribe problemet lidt anderledes ved at lave det så du undgår duplikater.

Og svar fra mig. Men DISTINCT som angivet i #1 er jo egentligt det rigtige svar på spørgsmålet som oprindeligt stillet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester