Pregunta:
¿Buscar registro en SQL?
anonymous
2010-08-10 08:49:29 UTC
Hola tal vez en la Pregunta pasada no me explique bien lo que quiero es buscar un dato en una tabla con 60 columnas y no se es columna esta me gustara saber como se hace esa parte en SQL Server
Seis respuestas:
?
2010-08-10 09:52:38 UTC
¿Te refieres a Microsoft SQL server? (Existen docenas de servers SQL).



En ese caso lo que podría servirte es la busqueda de texto completo (Full-Text search): http://msdn.microsoft.com/es-es/library/ms142571.aspx (otros motores de base de datos SQL también permiten este tipo de busqueda, pero los detalles pueden ser distintos).



Lee con atención dicho documento y de seguro encontraras lo que andas buscando. Como resumen:

- Agregas las columnas donde quieras que la busqueda sea efectiva a unindice Full-text (si las 60 columnas son de un tipo de dato compatible con el full-text search entonces puedes agregarlas todas y así estarás buscando en todas ellas).



-Una vez agregadas las columnas a un índice de texto completo, las aplicaciones y los usuarios pueden ejecutar las consultas de texto completo en el texto de las columnas. Estas consultas pueden buscar cualquiera de lo siguiente:



Una o varias palabras o frases específicas (término simple)

Una palabra o frase cuyas palabras empiezan con un texto determinado (término de prefijo)

Formas con inflexión de una palabra determinada (término de generación)

Una palabra o frase que esté cerca de otra palabra o frase (término de proximidad)

Formas sinónimas de una palabra determinada (diccionario de sinónimos)

Palabras o frases que usan valores ponderados (término ponderado)



Ten en cuenta que, si necesitas hacer la búsqueda para informarte sobre algo o para hacer reportes puedes usar algún programa que interactúe con la base de datos y te simplifique esa tarea. Posiblemente el Crystal Report tiene alguna herramienta de búsqueda o posiblemente el workbench de microsoft sql.
Veronica
2014-06-06 12:50:19 UTC
Puedes hacer un select poniendo en la condición todas las columnas:



SELECT * FROM alumnos WHERE columna1= '***' or columna2= '***' or columna3= '***' .....



o puedes hacer un stored procedure como el de la siguiente pagina:



http://www.mssqltips.com/sqlservertip/1522/searching-and-finding-a-string-value-in-all-columns-in-a-sql-server-table/
Javier Bazan
2014-04-27 22:18:46 UTC
Si no sabes en que columna está pues...
e=mc2
2010-08-10 12:05:14 UTC
Hola Sebas C,

Una tabla está compuesto por campos y registros. Haciendo analogía con una tabla en Word, Excel, o lo que fuese... los campos son como las columnas y los registros son las filas.

Aclarado el punto debo preguntarte ¿A que le llamas columnas? ¿A los registros? ¿A los campos?

Si es a lo primero, para ubicar un registro basta con añadir a la consulta SQL un WHERE con las condiciones necesarias, como los ejemplos que te han sugerido:



select tus-campos

from tu-tabla

where (Campo1 = ....) ...



Una consulta te devolverá aquellos REGISTROS que cumplan dicha condición.

Te recuerdo, que en cualquier motor SQL, técnicamente no existe posición. No necesariamente el orden de los registros devueltos son el orden en que están almacenados (y fueron ingresados) físicamente. Por tanto decir algo como "obtener el registro que está en la posición ***" es técnicamente incorrecto. La ubicación es relativa: está dada por las claves que tenga presente dicha tabla. Es posible que dada para una consulta un registro en la 10ma posición esté físicamente al final.



Ahora bien, si por columnas te refieres a los campos y deseas obtener aquellos registros cuyo dato a buscar coincida con alguno de esos campos no queda otra más que añadir a la consulta SQL en la parte where tantos (Campo_i = ...) como necesites concatenados por OR. Algo así:



select tus-campos

from tu-tabla

where (Campo1 = dato) OR ... (CampoN = dato)



Si, es un tanto molesto e impráctico... para semejante cantidad de campos. En este escenario yo mas bien aconsejaría darle un pequeño giro al asunto. Esto está indicando cierta debilidad de diseño y que hay entidades (tablas) escondidas en el análisis. La solución pasa por modificar el diseño de las tablas y hacer que los campos de búsqueda (algunos) se conviertan en registros de una tabla.

Para que te hagas una idea, imagínate que giras la tabla: tus campos se hacen registros y los registros, en campos.... Es un tanto más lioso lo reconozco pero por lo general, haciendo algunos ajustes al diseño de tus tablas es posible llevar este tipo de búsqueda de otra forma.



Habría que ver el diseño de tus tablas para poder indicarte mejor.



Saludos,
anonymous
2010-08-10 11:18:30 UTC
que tal amigo la verdad no necesitas saber en que columna esta si al fin de cuenta es una sola tabla y lo buscara y encontrara asi tengo 10000 columnas.

Lo unico que tienes que saber es el nombre de la columna



imaginate que tienes una tabla con 60 columnas llamada DatosPersonas, y esta tabla tiene como campos el nombre, apellidopaterno,apellidomaterno,celular etc. hasta llegar a los 60.



Ahora imaginate que tienes a 1000 Personas en esa tabla y quieres buscar a una persona que se llame juan, la unico que hay que hacer es usar un select:



SELECT * FROM DatosPersonas WHERE nombre='juan';

esto dice que selecciones todos los campos (nombre,apellidomaterno,celular etc.) de la tabla DatosPersonas que tengan el nombre de juan



eso es todo
?
2010-08-10 08:54:22 UTC
no entiendo tu explicacion peor asi buscas registros en SQL server



select * from nombre_tu_tabla where nombre_campo = lo que estas buscando

el * es apra que saque todos los campos y no uno en especifico



aver necesits buscar algo y no sabes que columna esta, a q caray para empezar sabes ques es una columna que es una fila??? muestra toda tu tabla e y averigua ques columa queires y posteriormente ya cambias el campo, select * from tu:table

elemplo



SELECT * FROM alumnos WHERE nombre = 'juan'



espero te sirva





Pasame tu correo y te resulevotu duda, el amigo de abajo no sabe ni q onda con lo q dice, deseguro se puso a investigar y eso le gusto y lo copio y pego, se nota por el uso de escritura.



contactame: fernandogg_2004@hotmail.com


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...