webForumDet fria alternativet

Hitta u_12 men inte u_123

6 svar · 533 visningar · startad av drew

drewMedlem sedan mars 2007845 inlägg
#1

Jag har ett fält som kan se ut som någon av dessa

u_12

u_12:u_151

u_12:u_151:u_18

användarnumren är separerade med kolon.
Jag har försökt

SELECT * FROM table_1 WHERE to_address LIKE "%u_15_" ;
SELECT * FROM table_1 WHERE to_address LIKE "%u_15_" ESCAPE ":" ;

I den första har jag även försökt med % bakom. Då får jag träff på rader som innehåller aningen u_15 eller u_151 (eller båda). I det andra exemplet får jag bara träff på rader som innehåller u_151, men inte dom som innehåller u_15 (om inte u_151 finns i samma).

Hur ska jag förklara för MySQL att den bara ska hitta raden om det är tomt eller ett kolon efter. Inte om det är en siffra.

Peter SMedlem sedan dec. 20025 483 inlägg
#2
SELECT * FROM table_1 WHERE to_address REGEXP "u_15([^0-9]|$)" ;
drewMedlem sedan mars 2007845 inlägg
#3

Toppen fungerar perfekt, tack.

([^0-9]|$)... Skulle ex ([^0,5,3]|$) ge samma resultat. Att 0, 5 och 3 undantas men resten accepteras?

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Nästan: ([^053]|$)

:)

drewMedlem sedan mars 2007845 inlägg
#5

Om jag vill göra åt andra hållet att 0-9 accepteras, men inget annat så tar jag bara bort ^?

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Japp! Om 0..9 måste följa 5:an kan du skriva "u_15[0-9]".

drewMedlem sedan mars 2007845 inlägg
#7

Ok. Tack.

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)