2010-01-15 14 views
20

Sono sicuro che questo è super facile, ma non riesco a capirlo ... Devo selezionare tutti i titoli dal mio database dove inizia il titolo con A o B o C ecc Ecco quello che ho provato finora:php select da mysql dove il titolo inizia con A (e A solo)

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A' 

ma non restituisce nulla .. qualcuno mi potrebbe aiutare con questo?

Acclamazioni

+0

ho anche dimenticato di chiedere come si fa se il il titolo inizia con un numero .. – SoulieBaby

+0

E come farlo con PDO? –

risposta

47

Per i titoli a partire dal 'A' utilizzare un % dopo la A

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%' 

Per i titoli con la lettera 'A' in esso, utilizzare % su entrambi i lati del A

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE '%A%' 

Per titoli che terminano con la lettera "A", utilizzare % prima dello A

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE '%A' 

Fondamentalmente % è un carattere jolly. Indica a MySQL che qualsiasi cosa può trovarsi nella posizione.

Per avere numeri come la prima lettera, controllare Mark's answer.

+0

Penso che il secondo esempio dovrebbe terminare in ''% A%'' – catsby

+0

Sì, sarebbe corretto. Fisso. –

+0

Grazie mille, ho anche dimenticato di chiedere come farlo se il titolo inizia con un numero? – SoulieBaby

1

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%'

% dice "niente", quindi è "A" allora tutto. Funziona solo con l'operatore di confronto LIKE.

2

prova:

SELECT * FROM weblinks WHERE catid = 4 AND ((title like 'A%') OR (title like 'B%')) 

così via e così via

6

I caratteri jolly per LIKE sono % e _, dove% corrisponde a 0 o più caratteri e _ corrisponde esattamente a un personaggio.

6

Le risposte esistenti siano corrette per inizio con A:

SELECT * FROM weblinks WHERE catid = 4 AND title LIKE 'A%' 

Per inizio con qualsiasi numero è possibile utilizzare l'operatore REGEXP:

SELECT * FROM weblinks WHERE catid = 4 AND title REGEXP '^[0-9]' 
+1

Vieni a rubare la risposta accettata da me eh? (Sto scherzando) Aggiunto un link alla tua risposta. –

+0

grazie ragazzi molto apprezzati :) – SoulieBaby

+2

@Soulie: probabilmente dovresti accettare la risposta di Chacha dato che hai cambiato la domanda dopo che aveva già risposto correttamente. La prossima volta, se apporti una modifica sostanziale a una domanda, inizia una nuova domanda piuttosto che modificarne una esistente. –