Tengo una tabla de prefijos así:

 Primary Key | Value

      1      | 0012
      2      | 0013
      3      | 0014
      4      | 0015

Y me pregunté cómo podría escribir una consulta que devolviera la clave primaria del prefijo del código que paso.

Por ejemplo, si tuviera el valor 00135648954 me gustaría pasarlo a una consulta para devolver 2 porque 00135648954 comienza con 0013.

He intentado escribir algunas consultas LIKE sin éxito.

Investigué una consulta CONTAIN que no se ejecutaba porque la tabla no estaba indexada a texto completo (tampoco tenía experiencia con CONTAINS, por lo que no quería probar demasiado)

0
Pete 2 dic. 2019 a las 17:03

2 respuestas

La mejor respuesta

Simplemente use like:

select primary_key
from mytable 
where @myval like concat(value, '%')

Donde @myval representa el valor para el que desea obtener la clave primaria.

Si desea algo que sea seguro para nulos (es decir, que no coincidirá si @myval es nulo), puede utilizar + como operador de concatenación:

select primary_key
from mytable 
where @myval like value + '%'
3
GMB 2 dic. 2019 a las 14:13
select id
from your_table
where @parameter like value + '%'
0
juergen d 2 dic. 2019 a las 14:06