PHP ordena por longitud pero ignora caracteres -- php campo con sorting camp Relacionados El problema

PHP order by length but ignore characters


-1
vote

problema

Español

Estoy cambiando un complemento PHP y tengo dificultades para obtener la clasificación de la matriz que se extrae de la base de datos a la derecha. A partir de ahora lo tengo como:

  order by LENGTH(name), name   

que me hace cerca pero no está bien. Sale así:

8.2-11 8.2-12 8.2-13 8.2-14 8.2-13-A

Lo que entiendo porque 8.2-13-A es más largo que 8.2-13 para que esté al final. ¿Cómo puedo ignorar el -A o -B , por lo que los dos 8.2-136 's son justo al uno del otro?

Original en ingles

I am changing a php plugin and having a hard time to get the sorting of the array it pulls from the database right. As of now I have it like:

order by LENGTH(name), name 

Which gets me close but not right. It outputs like so:

8.2-11 8.2-12 8.2-13 8.2-14 8.2-13-A

Which I understand because 8.2-13-A is longer than 8.2-13 so it will be at the end. How can I ignore the -A or -B so the two 8.2-13's are right after each other?

     
       
       

Lista de respuestas

0
 
vote

Podría intentar encontrar la última ocurrencia del signo { "name": "photo_album", "version": "0.1.0", "private": true, "scripts": { "prisma": "prisma", "dev": "next dev", "build": "next build", "start": "next start -p $PORT", "postinstall": "prisma generate", "heroku-postbuild": "npm run build" }, "dependencies": { "@prisma/client": "^2.13.1", "babel-plugin-styled-components": "^1.12.0", "next": "10.0.3", "react": "16.13.0", "react-dom": "17.0.1", "react-query": "^3.5.1", "styled-components": "^5.2.1", "@prisma/cli": "^2.13.1", "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10" }, "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10", "@prisma/cli": "^2.13.1" } } 515 usando algo como: { "name": "photo_album", "version": "0.1.0", "private": true, "scripts": { "prisma": "prisma", "dev": "next dev", "build": "next build", "start": "next start -p $PORT", "postinstall": "prisma generate", "heroku-postbuild": "npm run build" }, "dependencies": { "@prisma/client": "^2.13.1", "babel-plugin-styled-components": "^1.12.0", "next": "10.0.3", "react": "16.13.0", "react-dom": "17.0.1", "react-query": "^3.5.1", "styled-components": "^5.2.1", "@prisma/cli": "^2.13.1", "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10" }, "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10", "@prisma/cli": "^2.13.1" } } 6

Con esta información, debe ser posible usar solo una subcadena de la cadena original como: { "name": "photo_album", "version": "0.1.0", "private": true, "scripts": { "prisma": "prisma", "dev": "next dev", "build": "next build", "start": "next start -p $PORT", "postinstall": "prisma generate", "heroku-postbuild": "npm run build" }, "dependencies": { "@prisma/client": "^2.13.1", "babel-plugin-styled-components": "^1.12.0", "next": "10.0.3", "react": "16.13.0", "react-dom": "17.0.1", "react-query": "^3.5.1", "styled-components": "^5.2.1", "@prisma/cli": "^2.13.1", "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10" }, "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10", "@prisma/cli": "^2.13.1" } } 7

Pero: estoy bastante seguro de que esto podría tener una influencia severa en el desempeño. Tal vez sea una mejor idea de implementar una solución con un { "name": "photo_album", "version": "0.1.0", "private": true, "scripts": { "prisma": "prisma", "dev": "next dev", "build": "next build", "start": "next start -p $PORT", "postinstall": "prisma generate", "heroku-postbuild": "npm run build" }, "dependencies": { "@prisma/client": "^2.13.1", "babel-plugin-styled-components": "^1.12.0", "next": "10.0.3", "react": "16.13.0", "react-dom": "17.0.1", "react-query": "^3.5.1", "styled-components": "^5.2.1", "@prisma/cli": "^2.13.1", "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10" }, "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-react": "^7.12.10", "@prisma/cli": "^2.13.1" } } 8 o hacer esto directamente en PHP.

 

You could try to find the last occurance of the - sign by using something like: LENGTH(name) - LOCATE("-", REVERSE(name))

With this information it should be possible to only use a substring of the original string like: ORDER BY LENGTH(SUBSTRING(name, (LENGTH(name) - LOCATE("-", REVERSE(name))))), SUBSTRING(name, (LENGTH(name) - LOCATE("-", REVERSE(name))))

BUT: I'm pretty sure this could have severe influence on the performance. Maybe it's a better idea to implement a solution with a stored procedure or do this directly in php.

 
 

Relacionados problema

30  ¿Cómo ordenar un sistema.collections.genic.list.list en vb.net?  ( How sort a system collections generic list in vb net ) 
i Usando una lista de genric (M_Equipment Lista) que es la colección de objetos (HORAR_PAYITEM). ¿Cómo se puede clasificar la lista de acuerdo con una protur...

828  ¿Cómo ordena un diccionario por valor?  ( How do you sort a dictionary by value ) 
A menudo tengo que ordenar un diccionario, que consiste en llaves y amplificador; Valores, por valor. Por ejemplo, tengo un hash de palabras y frecuencias res...

8  ¿Una forma más pitónica de escribir esta expresión?  ( A more pythonic way to write this expression ) 
Se supone que debo tomar una lista de palabras y ordenarla, excepto que necesito agrupar todas las cadenas que comienzan con 'X' primero. Aquí está lo que o...

3  Stl __merge_without_buffer algoritmo?  ( Stl merge without buffer algorithm ) 
¿Dónde puedo obtener una descripción de alto nivel decente del algoritmo utilizado en __merge_without_buffer() en el STL de C ++? Estoy tratando de reembols...

4  PHP: Ordenar una matriz  ( Php sort an array ) 
Tengo una matriz con datos de una tabla MySQL en un modelo establecido anidado, me gustaría ser ordenado, no solo alfabético, sino también con los nodos infan...

111  ¿Cómo ejecuto cualquier comando que edite su archivo (argumento) "en su lugar" usando Bash?  ( How do i execute any command editing its file argument in place using bash ) 
Tengo un archivo temp.txt, que quiero ordenar con el comando sort en Bash. Quiero los resultados ordenados para reemplazar el archivo original. Esto no ...

4  ¿Cómo puedo escribir un programa para generar un árbol de decisión de clasificación?  ( How can i write a program to generate a sorting decision tree ) 
En clase, nos dieron un simple árbol de decisiones para clasificar 3 elementos (A, B, C). (Fuente: brpreiss.com ) Mientras miras esto, tiene sentido ...

8  Cerca de algoritmos de clasificación - ¿Cuándo usar?  ( Near sorting algorithms when to use ) 
De vez en cuando, navegue por la web y busco algoritmos interesantes y datos para poner en mi bolsa de trucos. Hace un año, me encontré con la Soft Heap Est...

2  El analizador de Digit de Jquery Tablesorter no funciona  ( Jquery tablesorter comma digit parser not working ) 
Aquí está mi problema, Actualmente estoy usando el clasificador de la tabla de jQuery y encontré un analizador de coma-dígitos en la web. El problema que es...

1  PHP: Ordenar datos de conjuntos anidados  ( Php sort data from nested sets ) 
Actualmente estamos construyendo un sitio web con una tabla MySQL categorizada que contiene varias competencias, y notamos que el modelo establecido anidado s...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos