Estoy buscando una consulta SQL que me dé todas las filas donde ColumnX contiene alguna letra minúscula (por ejemplo, "1234aaaa5789"). Lo mismo para mayúsculas.Cómo encontrar filas que tienen un valor que contiene una letra minúscula
Respuesta
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
Esto debería funcionar con divertidos personajes como åäöøüæï. Es posible que necesite utilizar una intercalación utf-8 específica de un idioma para la tabla.
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
no funcionará con cualquier otro carácter que a-z, como åäöøüæï, etc. – geon
Para su información. REGEXP y RLIKE usan el conjunto de caracteres actual al decidir el tipo de un personaje. El valor predeterminado es latin1 (cp1252 Europa occidental). Advertencia Los operadores REGEXP y RLIKE funcionan en modo byte, por lo que no son seguros en varios bytes y pueden producir resultados inesperados con conjuntos de caracteres de múltiples bytes. Además, estos operadores comparan caracteres por sus valores de bytes y los caracteres acentuados no se pueden comparar como iguales, incluso si una colación dada los trata como iguales. –
yo no soy un experto en MySQL que sugeriría nos fijamos en REGEXP
.
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';
IN MS SQL server usa la cláusula COLLATE.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
Agregar COLLATE Latin1_General_CS_AS
hace que la búsqueda sea sensible.
La clasificación predeterminada de la instalación de SQL Server SQL_Latin1_General_CP1_CI_AS
no distingue entre mayúsculas y minúsculas.
Para cambiar la intercalación de cualquier columna para cualquier tabla permanentemente ejecutada después de la consulta.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
Conocer la intercalación de la columna para cualquier tabla ejecutada siguiendo el Procedimiento almacenado.
EXEC sp_help DatabaseName
Fuente: SQL SERVER – Collate – Case Sensitive SQL Query Search
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
Esto haría una búsqueda entre mayúsculas y minúsculas.
EDITAR
Como se indica en kouton 's comment here y tormuto' s comment here todo aquel que se enfrenta a un problema con el cotejo a continuación
COLLATE Latin1_General_CS_AS
deben primero comprobar el default collation por su servidor SQL, su respectiva base de datos y la columna en cuestión; y pase la intercalación predeterminada con la expresión de consulta. La lista de intercalaciones se puede encontrar en here.
Esto funciona bien. –
Esto funciona en MS SQL. –
Esto no funcionó desde phpmyadmin de mi servidor; recibí un error: Colación desconocida: 'Latin1_General_CS_AS'. Así que tuve que usar una intercalación más disponible en lugar de 'Latin1_General_CS' y funcionó. – tormuto
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
para buscar todas las filas en minúsculas
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
Gracias Manesh Joseph
Esto resolvió mi problema después de que cambié la cadena de comparación a mayúsculas. – sanepete
En PosgreSQL podría utilizar ~
Por ejemplo, podría buscar todas las filas que tienen col_a
con cualquier letra en minúsculas
select * from your_table where col_a '[a-z]';
Puede modificar la expresión Regex según sus necesidades.
Saludos,
--Para Sql
SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';
tengo que añadir binarios al Columnx, al obtener resultado como mayúsculas y minúsculas
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';
Este es como lo hice para la tabla codificada utf8 y la columna utf8_unicode_ci, w HICH no parece que han sido escritos exactamente:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
- 1. seleccionar filas que tienen 2 columnas igual valor
- 2. MySQL: Al seleccionar las filas que tienen un valor mínimo de una columna calculada
- 3. MySQL Query: cómo seleccionar las filas que no tienen un cierto valor?
- 4. Buscar filas que tienen el mismo valor en una columna en MySQL
- 5. ¿Cómo puedo encontrar los índices que tienen statistics_norecompute = ON
- 6. Verificar si una cadena comienza con una letra minúscula
- 7. Cómo encontrar una clave hash que contenga un valor coincidente
- 8. ¿Cómo obtengo el número de filas que tienen columnas duplicadas?
- 9. Encontrar métodos que tienen atributo personalizado que utilizan la reflexión
- 10. Cómo insertar una cadena que contiene un "&"
- 11. ¿Cómo encontrar el registro en una tabla que contiene el valor máximo?
- 12. SendInput() para el teclado - solamente con una letra minúscula
- 13. Seleccione un par de filas que obedezcan una regla
- 14. ¿Cómo encontrar entradas que no tienen StringListProperty vacía?
- 15. XPath para encontrar más cercana elemento antecesor que contiene un elemento que tiene un atributo con un cierto valor
- 16. filas selectas que no tienen ninguna tecla extranjeros vinculados
- 17. MySQL: Encontrar filas que no forman parte de una relación
- 18. Rieles: cómo buscar_por un campo que contiene una cierta cadena
- 19. Android: Convertir la primera letra de la cadena en minúscula
- 20. ¿Cómo sabe un programa Perl dónde encontrar el archivo que contiene el módulo Perl que utiliza?
- 21. Ordenando una tupla que contiene tuplas
- 22. ¿Cómo desplazo una UITableView a una sección que no contiene filas?
- 23. Expresión regular para que coincida con la cadena alfabética y requiera al menos una letra mayúscula y una minúscula (vb.net)
- 24. Rieles 3 encontrar padres que no tienen hijos
- 25. ¿Cómo dividir una tabla que contiene 100mil + cantidad de registros?
- 26. buscar imagen src que: contiene?
- 27. ¿Cómo ordenar una matriz que contiene diccionarios?
- 28. XSLT - Añadir espacio después minúscula seguida de la letra mayúscula
- 29. ActiveRecord encontrar todos los padres que tienen hijos asociados
- 30. Convertir la primera letra del archivo dado en la minúscula
No funciona en caso de DB insensible, debe agregar COLLATE Latin1_General_CS_AS de Devraj Gadhavi answer –
En MySQL 5.6, 'Latin1_General_CS_AS' provocó un error. 'COLLATE latin1_general_cs' trabajado sin embargo. – kouton
@kouton editó [mi respuesta] (http://stackoverflow.com/a/14646445/1184435) para obtener más detalles sobre el problema al que se enfrentó. –