2016-04-18 14 views
-1

Hier ist der TischSuchzeile mit bestimmtem Wert

*City  Crime* 
    Bangkok High 
    Hongkong Very High 
    Seoul  Low, Average 
    Texas  Average, High 
    Jakarta Low 
    Singapore Very Low 
    Las Vegas Average, Low 

wie die SQL ist zu suchen, wo das Verbrechen „Low“ i verwenden, um die preg_split aber ich weiß nicht, die Datenbank

+1

Versuchen Sie dies. Wählen Sie * aus der Tabelle, wo "Verbrechen" wie "% Low%" und "Kriminalität" nicht wie "% sehr niedrig%"; –

Antwort

1

Verwenden Sie die passen LIKE Matcher für eine teilweise Übereinstimmung auf einer Schnur wählen:

SELECT * 
FROM cities 
WHERE crime LIKE '%Low%' 

Wenn Sie Groß- und Kleinschreibung müssen, verwenden Sie LOWER(crime) die Spalte zu niedrig konvertieren ercase.

+0

Diese Abfrage gibt auch Daten zurück, bei denen der Spaltenwert 'Sehr niedrig' ist. Das OP benötigt nur die Daten, die 'Low' –

+0

Ah hat, war nicht sicher, basierend auf der Frage, eine einfache UND-Verknüpfung sollte in diesem Fall ausreichen. –

0
select * 
from table 
where 
    `crime` like '%Low%' 
    and `crime` not like '%Very Low%'; 
1

Versuchen Sie es.

Mysql:

SELECT * 
FROM City 
WHERE `Crime` REGEXP '^Low' or `Crime` REGEXP ', Low' 
or `Crime` REGEXP 'Low,' 

Sql:

select * from City 
where (Crime like 'low%' or Crime like '%, low%' or Crime like '%low,%') 
0

Sie Datensätze auswählen, wo einige Kriterien mit WHERE erfüllt ist.

Es gibt weitere Einträge in Ihrer Tabelle, in denen die Zeichenfolge eine 'Low' Teilzeichenfolge enthält. Z.B. 'Niedrig, Durchschnitt' und 'Durchschnittlich, Niedrig'. Ich weiß natürlich nicht genau was sie bedeuten. Bedeutet beides dasselbe? Bedeuten sie, dass das Verbrechen "niedrig bis mittel" ist? Oder ist es unentschieden, ob "niedrig oder mittel"? Und würdest du das als "niedrig" bezeichnen oder wäre das eine weitere Ebene über "niedrig"?

Dann gibt es den Eintrag 'Sehr niedrig'. Würdest du dieses "niedrige" oder ein höheres Niveau betrachten?

Abhängig von den Antworten könnten Sie obige Abfrage alle möglicherweise passen ‚Low‘ Substrings:

select * from mytable where crime like '%Low%'; 

Oder einige erweiterte String-Suche verwenden, z.B.

die würde "niedrig, durchschnittlich" und "durchschnittlich, niedrig", aber nicht "sehr niedrig" bekommen.

Verwandte Themen