Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 02-jul-2006, 19:42   #1 (permalink)
elisa44 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 48
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
elisa44 está desconectado   Responder Citando
Antiguo 02-jul-2006, 19:55   #2 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.253
Enviar un mensaje por MSN a TolaWare
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.
TolaWare está desconectado   Responder Citando
Antiguo 02-jul-2006, 20:06   #3 (permalink)
elisa44 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 48
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
elisa44 está desconectado   Responder Citando
Antiguo 02-jul-2006, 21:55   #4 (permalink)
Moderador NO Sabio
BrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy pronto
 
Avatar de BrujoNic
 
Fecha de Ingreso: noviembre-2002
Ubicación: Costa Rica/Nicaragua
Mensajes: 10.899
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
__________________
Orgulloso de ser latino y demostrar que si uno trata de escribir bien, los demás comprenderán lo que respondo.
¿Fácil verdad?
BrujoNic está desconectado   Responder Citando
Antiguo 03-jul-2006, 08:16   #5 (permalink)
elisa44 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 48
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
elisa44 está desconectado   Responder Citando
Antiguo 03-jul-2006, 09:16   #6 (permalink)
PequeñoMauro está en el buen camino
 
Avatar de PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 599
Enviar un mensaje por MSN a PequeñoMauro
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....."
PequeñoMauro está desconectado   Responder Citando
Antiguo 03-jul-2006, 17:56   #7 (permalink)
elisa44 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 48
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
elisa44 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:28.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93