Depende del gestor
https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
En mi caso la aplicación es en condicionales, campo1 = campo2 & campo4 = campo5, 1 y uno de los campos era null y la condicional me devolvia null
Depende del gestor
https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
En mi caso la aplicación es en condicionales, campo1 = campo2 & campo4 = campo5, 1 y uno de los campos era null y la condicional me devolvia null
2
In MySQL, a function cannot return a table. You would have to use a stored procedure for that. – Dmytro Shevchenko Nov 6 '12 at 13:11
4
What do you mean with "In SQL it's working fine?". You are using SQL.... – a_horse_with_no_name Nov 6 '12 at 13:28
************************
CREATE FUNCTION myFunction(id INT) RETURNS TABLE
BEGIN
RETURN SELECT * FROM board;
END
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE
*********************************
{STRING|INTEGER|REAL|DECIMAL}CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
SONAME shared_library_name
select resultset you have to define a procedure but not function.DELIMITER //
DROP PROCEDURE IF EXISTS myProcedure //
CREATE PROCEDURE
myProcedure( id INT )
BEGIN
SELECT * FROM board
-- add where condition if required
WHERE Col_name = id
;
END
//
DELIMITER ;
call myProcedure( 6 )
|

PORQUE EL COTEJAMIENTO latin1_swedish_ci ES EL QUE ESTA POR DEFECTO
Por lo que yo puedo ver, latin1 fue el juego de caracteres predeterminado en los tiempos pre-multibyte (MySQL 4.1 hacia atras)y su cotejamiento por defecto era latin1_swedish_ci y parece que ha sido continuado, probablemente por razones de compatibilidad hacia abajo (porejemplo, para antiguas sentencias CREATE en las que no especificaron una cotejamiento).
En cuanto a por qué sueco, sólo puedo suponer que es porque MySQL es de una compañía sueca. No puedo ver ninguna otra razón para elegir este cotejamiento
**************
OJO AL COLLATION LO TRADUCEN COMO COTEJAMIENTO O COLACION
***********
CREATE TABLE `visitas_tmp` ( `id` int(11) default NULL, `user_agent` varchar(255) default NULL, `permalink` varchar(255) default NULL, `created_at` datetime default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
*******
**************************************************************************************************http://cambio.name/personal/content/%C2%BFqu%C3%A9-es-eso-de-ascii-iso-8859-1-y-utf-8
character-set-server=latin1
collation-server=latin1_spanish_ci
default-character-set=latin1
default-collation=latin_spanish_cidefault_charset="iso-8859-1"AddDefaultCharset ISO-8859-1***********Aunque parece ser un tema menor, la verdad es que hay harto que pensar y decidir detrás de los CHARSETs y COLLATIONs. Por el lado del CHARSET, aunque parezca como mejor opción utilizar siempre UTF8, hay casos en que resulta totalmente inútil: si queremos guardar una cadena cuyo valor sabemos que no contendrá valores distintos del alfabeto, es mejor ocupar ASCII y de esa forma estar seguros que no se pueden ingresar caracteres inválidos. Por otro lado, si estamos seguros de que nuestra aplicación nunca jamás tendrá otro idioma que no sea español, también podemos utilizar latin1, aunque hay que tener cuidado en hacer los ajustes necesarios en todos aquellos lados donde podría haber una influencia de otro set de caracteres.El tema del COLLATION sí es un poco más extenso ya que dependerá mucho del cómo se efectúen las búsquedas y también el idioma en que estemos trabajando. MySQL asigna utf8_general_ci como COLLATION predeterminado de UTF-8, pero éste presenta algunos problemas en hebreo y en algunas localizaciones de idiomas cirílicos; principalmente bielorruso, macedonio, serbio y ucraniano; así que para estos casos resulta mejor ocupar utf8_unicode_ci, la que tampoco está exenta de polémica ya que es más lento que utf8_general_ci.Como gran conclusión: traten de usar UTF-8 como CHARSET donde sea posible, y si quieren tener velocidad vayan por utf8_general_ci como COLLATION pero si quieren tener certeza de que todo está bien ordenado y que sea compatible con (casi) todos los idiomas del mundo ocupen utf8_unicode_ci. (YO USARE utf8_spanish_ciEL ARCHIVO MY.INI CONTIENE ESTO#collation_server=utf8_unicode_ci#character_set_server=utf8OJO OTRA COSA: Ojo que en MySQL, la codificación UTF-8 no existe! Sólo existe utf8 (en minúsculas sin raya) y por supuesto latin1, que sería el equivalente a ISO-8859-1.
http://blog.unreal4u.com/2012/08/sobre-collation-y-charset-en-mysql/)
SELECT * FROM table WHERE field COLLATE utf8_bin LIKE '%º%';
***************
http://www.rae.es/consultas/exclusion-de-ch-y-ll-del-abecedario
Exclusión de ch y ll del abecedario
Se excluyen definitivamente del abecedario los signos ch y ll, ya que, en realidad, no son letras, sino dígrafos, esto es, conjuntos de dos letras o grafemas que representan un solo fonema. El abecedario del español queda así reducido a las veintisiete letras siguientes: a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z.El español se asimila con ello al resto de las lenguas de escritura alfabética, en las que solo se consideran letras del abecedario los signos simples, aunque en todas ellas existen combinaciones de grafemas para representar algunos de sus fonemas.La eliminación de los dígrafos ch y ll del inventario de letras del abecedario no supone, en modo alguno, que desaparezcan del sistema gráfico del español. Estos signos dobles seguirán utilizándose como hasta ahora en la escritura de las palabras españolas: el dígrafo ch en representación del fonema /ch/ (chico [chíko]) y el dígrafo ll en representación del fonema /ll/ o, para hablantes yeístas, del fonema /y/ (calle [kálle, káye]). La novedad consiste, simplemente, en que dejan de contarse entre las letras del abecedario.Al tratarse de combinaciones de dos letras, las palabras que comienzan por estos dígrafos o que los contienen no se alfabetizan aparte, sino en los lugares que les corresponden dentro de la c y de la l, respectivamente. La decisión de adoptar el orden alfabético latino universal se tomó en el X Congreso de la Asociación de Academias de la Lengua Española, celebrado en 1994, y viene aplicándose desde entonces en todas las obras académicas.- See more at: http://www.rae.es/consultas/exclusion-de-ch-y-ll-del-abecedario#sthash.RqSNK4Kn.dpuf
_ci(no distingue entre mayúsculas y minúsculas), _cs (distingue entre mayúsculas y minúsculas), o _bin(binario).MyISAM, MEMORY, NDBCLUSTER, andInnoDB storage engines.<?php
header('Content-Type: text/html; charset=UTF-8'); ?>SELECT * FROM `usuarios` WHERE `nombre` = 'jose'SELECT * FROM `usuarios` WHERE `nombre` = 'josé' COLLATE utf8_binSELECT * FROM `usuarios` WHERE UPPER(`nombre`) = UPPER('josé) COLLATE utf8_bin