Avatar billede larsgrau Forsker
24. oktober 2023 - 11:56 Der er 2 kommentarer og
1 løsning

SQL query

Hej

Jeg har denne SQL

Select * From main Where
            main.Emne like '%$search%' or main.Rettelse like '%$search%' Or    main.Source like '%$search%' Or    main.country like '%$search%' And
            (main.rtbilleder = '1' Or main.rtdb = '1' Or main.rtdbit = '1' Or main.rteware = '1' Or main.rtls = '1' Or    main.rtdbeo = '1' Or
            main.rtdbeoit = '1' Or main.rtedo = '1' Or main.rts = '1')

Men det som står i () virker ikke som det skal, er der noget jeg gør forkelt ?

Lars
Avatar billede arne_v Ekspert
24. oktober 2023 - 15:03 #1
SQL virker syntaktisk korrekt.

Der er dog nogle ting som undrer mig.

Kan alle de felter indeholde '1'?

Er du sikker på at de blanded OR og AND uden parentes gør det du forventer?
Avatar billede arne_v Ekspert
24. oktober 2023 - 15:04 #2
Derudover er der nogle principielle problemer med:

like '%$search%'

- mulighed for SQL injection hvorfor der bør bruges parametre
- med store data mængder vil den query være ekstrem langsom
Avatar billede larsgrau Forsker
25. oktober 2023 - 21:51 #3
Man skal bare sætte () om de 2 "sæt or"

Select * From main Where
(main.Emne like '%$search%' or main.Rettelse like '%$search%' Or    main.Source like '%$search%' Or    main.country like '%$search%')
And
(main.rtbilleder = '1' Or main.rtdb = '1' Or main.rtdbit = '1' Or main.rteware = '1' Or main.rtls = '1' Or    main.rtdbeo = '1' Or main.rtdbeoit = '1' Or main.rtedo = '1' Or main.rts = '1')
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

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