Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne
kilofmar
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.11.2006

Ostrzeżenie: (0%)
-----


Witam
Czy da się za pomocą wyrażenia regularnego wyświetlić rekord w którym nie wystąpiło szukane wyrażenie.
Chodzi mi o to że gdy nie ma szukanego ID w polu to wyświetl ten rekord.

Np. Mam tabele i w niej pole "status" i tam sa ID "12,23,232,123,33" a moje ID jest np. 100 i nie występuje w tym polu więc chciałbym wyświetlić ten rekord

Bo aby wyświetlić rekord gdy występuje ID to robię to tak:

  1. <?php
  2. $query2 = sprintf("SELECT *  FROM `sklep`
  3.                       WHERE `stsud` REGEXP '(,%s,|^%s,|,%s$|^%s$)' LIMIT 0,1",
  4.                      $dane['id'], $dane['id'], $dane['id'], $dane['id']);
  5. ?>


Ale jak to odwrócić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fragles
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


Jeśli to jest tekst i jeśli po każdym ID występuje przecinek to wystarczy użyć LIKE, negacji i warunku np '%100,%'

SELECT x FROM y WHERE ID NOT LIKE ('%id,%');

poza tym czy nie lepiej, wygodniej szybciej by było zrobić tabelę na ID - zrobić klucz i zamiast grzebać w tekście zrobić złączenia?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 11:00