Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Instr

Estas en el tema de Instr en el foro de Mysql en Foros del Web. Hola Tengo el siguiente query: Select t1.campo1, t2.campo2 from tabl1 t1, tabla2 t2 where ... And (instr (?, t1.campo1)=1), no me funciona, con oracle no ...
  #1 (permalink)  
Antiguo 02/07/2006, 19:42
 
Fecha de Ingreso: junio-2004
Mensajes: 49
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta Instr

Hola
Tengo el siguiente query:
Select t1.campo1, t2.campo2 from tabl1 t1, tabla2 t2 where ... And (instr (?, t1.campo1)=1), no me funciona, con oracle no tengo problemas. Ojala alguien pueda ayudarme.
Gracias
  #2 (permalink)  
Antiguo 02/07/2006, 19:55
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Coloca la estructura de las tablas, y la consuta completa, asi te podremos dar mas ayuda.

Que funcione en un DBMS no significa que tiene que funcionar en otro DBMS, ya que cada uno implemente un dialecto distinto del lenguaje SQL.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 02/07/2006, 20:06
 
Fecha de Ingreso: junio-2004
Mensajes: 49
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta

Me queda claro que si funciona en oracle no quiere decir que funcione en MySql, solo quiero transformar, por decirlo de una forma. esa consulta MySql, por eso mi consulta. Así están creadas las tablas:
CREATE TABLE tbl_systemclass (
sys_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
filename VARCHAR(30) NOT NULL,
url VARCHAR(20) NULL,
itemname VARCHAR(20) NULL,
sec_id INTEGER UNSIGNED NULL,
menuitem VARCHAR(5) NULL DEFAULT true,
PRIMARY KEY(sys_id),
INDEX tbl_systemclass_FKIndex1(sec_id),
FOREIGN KEY(sec_id)
REFERENCES tbl_section(sec_id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)

CREATE TABLE tbl_accessright (
acr_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
rol_id INTEGER UNSIGNED NOT NULL,
sys_id INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(acr_id, rol_id, sys_id),
INDEX idx_rol_id(rol_id),
INDEX idx_sys_id(sys_id),
FOREIGN KEY(rol_id)
REFERENCES tbl_role(rol_id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(sys_id)
REFERENCES tbl_systemclass(sys_id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)

y la consulta es esta:
SELECT sys.sys_id FROM tbl_systemclass sys, tbl_accessright acr WHERE sys.sys_id=acr.sys_id AND acr.rol_id=? AND (instr (?, sys.url) =1)

Gracias
  #4 (permalink)  
Antiguo 02/07/2006, 21:55
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Hola elisa44, cada motor de BD tiene sus particularidades y por consiguiente, te recomiendo buscar en el sitio propio del producto.

Por ejemplo, la funcion INSTR() en MySQL tiene 2 parámetros...

INSTR(str,substr): El resultado es la posición del substr en str. Por ejemplo:

Código PHP:
mysqlSELECT INSTR('foobarbar''bar');
+---------------------------+
INSTR('foobarbar''bar') |
+---------------------------+
|                         
|
+---------------------------+
1 row in set (0.01 sec)

mysqlSELECT INSTR('xbar''foobar');
+-------------------------+
INSTR('xbar''foobar') |
+-------------------------+
|                       
|
+-------------------------+
1 row in set (0.00 sec
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 03/07/2006, 08:16
 
Fecha de Ingreso: junio-2004
Mensajes: 49
Antigüedad: 19 años, 9 meses
Puntos: 0
Hola,
Los parámetros están, uno es ? y el otro t1.campo1, lo que yo quiero es que el resultado sea igual a 1, por eso pregunto where (instr (?, t1.campo1)=1), donde ? es lo que yo ingreso.

saludos
  #6 (permalink)  
Antiguo 03/07/2006, 09:16
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hola elisa44, el primer parámetro seria el string total y el segundo el substring que deseas saber si esta dentro del string total.
Revisa y verifica el ejemplo que te dio BrujoNic

Cita:
INSTR(campo_mayor,campo_substring)
La pregunta es: como deseas hacer la comparación con el INSTR, que es lo que deseas lograr haciendo esa comparación?, pues como sabes, esta función se realiza en base a dos string.
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 03/07/2006, 17:56
 
Fecha de Ingreso: junio-2004
Mensajes: 49
Antigüedad: 19 años, 9 meses
Puntos: 0
Hola,
El error que me da es el siguiente:
FUNCTION geocean.instr does not exist
SELECT sys.sys_id FROM tbl_systemclass sys, tbl_accessright acr WHERE sys.sys_id=acr.sys_id AND acr.rol_id=1 AND (instr ('user/userManager', sys.url) =1);
la base de datos se llama geocean, url es 'user/userManager', no entiendo por qué dice que la función no existe.
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:35.