/ / MySQL. Seleccione la fila con el mismo `valor` que contiene más símbolos“ | ”- mysql, base de datos

MySQL. Seleccione la fila con el mismo `valor` que contiene más símbolos“ | ”- mysql, base de datos

Lo siento por la pregunta formulada incorrectamente. Intentaré explicarlo una vez más.

enter image description here

Hay dos registros con valor 1. Quiero seleccionar SOLO UN registro que contenga más "|" simbolos

Si solo hay un registro con valor único, debería verlo también.

¿Cómo debo hacer eso?

Respuestas

0 para la respuesta № 1

Tal vez....

Simplemente obtenemos una longitud de título menos la longitudtítulo con el | eliminado para encontrar cuántos | había como una sub consulta. Luego, unimos esto a su conjunto de datos base en el valor y el número de ocurrencias. El supuesto de que no hay valor puede tener títulos con el mismo número de | en ellos.

Si existe tal situación: entonces se devolverán ambos (o más) registros para ese valor.

Digo tal vez porque estoy asumiendo que entiendo la pregunta.

SELECT A.*
FROM table A
INNER JOIN (SELECT max(length(title)-length(replace(title,"|","")))as Occurance, value
FROM table
GROUP By Value) B
on A.Value = B.value
and length(title)-length(replace(title,"|","")) = B.Occurance

--------------------- Actualizado para nueva columna

SELECT A.*
FROM TABLE A
INNER JOIN (SELECT max(Components) as MaxComponents, value
FROM Table
GROUP By Value) B
on A.Value = B.value
and A.Components = B.MaxComponents