2011-03-11 13 views

Respuesta

8

tratar

 SELECT * 
     FROM personal_urls 
     WHERE CAST(vanity_url AS BINARY) RLIKE '[A-Z]'; 
+0

Devuelve todo lo que contiene [A-Za-z]. Por alguna razón, la expresión regular no es sensible a las mayúsculas y minúsculas por defecto. Con REGEXP BINARY funciona. ¡Gracias de todos modos! –

+0

@Michael, actualizo mi respuesta, intente ahora por favor – diEcho

+1

La expresión regular no distingue entre mayúsculas y minúsculas porque está usando una intercalación insensible a mayúsculas – JamesHalsall

3

Creo que la función de cadena RLIKE puede ayudar. Podemos usar regexp [A-Z] para probar cadenas para letras mayúsculas.

1

Es posible que quiera probar

SELECT DISTINCT(`columnName`) FROM personal_urls WHERE `columnName` LIKE BINARY Upper(`columnName`) 
+0

Probé esto y solo da resultados para campos completamente cortados. Pero necesitaba que contenga uno o más uppercased. –

+0

@Michael: Correcto. Actualicé tu pregunta para (una o más) letras mayúsculas. – Typist

+0

@Miachel: RLIKE BINARY dará resultados similares a REGEXP BINARY – Typist

1

he encontrado la respuesta a mí mismo.

SELECT * FROM personal_urls WHERE vanity_url REGEXP BINARY '[A-Z]' 
+0

prueba mi respuesta también – diEcho

1

Sé que esto es viejo, pero lo encontré hoy así que lo dejaré aquí para cualquiera que venga de Google.

Puede comparar cada registro con la versión en minúsculas de sí mismo. La única sutilidad es que la comparación de cadenas regulares no distingue entre mayúsculas y minúsculas si está utilizando intercalaciones que no distinguen entre mayúsculas y minúsculas (que probablemente sea así si hace esta pregunta). Comparar valores como binarios con la palabra clave BINARY forzará la distinción entre mayúsculas y minúsculas.

SELECT * FROM personal_urls WHERE vanity_urls != BINARY LOWER(vanity_urls) 
Cuestiones relacionadas