Requête donne #1305 - FONCTION de base de données-nom.LEN n'existe pas; POURQUOI?

EDIT3 MySQL Violon Ici. J'ai fait l'exemple MySQL de sorte que vous pouvez voir les problèmes actuels. Alors que je m'attends à avoir Jamie Foxx, Christoph Waltz dans le 2 names résultat, il donne beaucoup plus. Même si il est écrit exactement de la même manière qu'elle l'était dans le SQL exemple où il retourner les noms correctement. :/

EDIT2 SQL Violon ici. C'est une version beaucoup plus simple, mais la logique est là. J'ai besoin de ce travail dans MySQL comme le violon est en SQL. Quand je viens de remplacer le SQL fonctions avec LENGTH et LOCATE et le tester avec PhpMyAdmin, il renvoie l'intégralité du contenu de la actors colonne, et pas seulement les deux premiers noms. Je suis encore plus confus maintenant que le LOCATE est censé être l'équivalent de la CHARINDEX.

EDIT1 *Oh, j'ai juste trouvé que ni LEN ou CHARINDEX existent dans MySQL. Je pense que je peux remplacer LEN avec LENGTH, mais je ne sais pas quoi faire avec le CHARINDEX j'ai essayé d'utiliser LOCATE mais le résultat est incorrect, il donne le contenu intégral de la actors champ. Toute idée?

Un autre suivi lors de mes précédentes questions. Ce devait être la fin de celui-ci cependant. J'ai eu une partie de la requête qui utilise la len fonction de travail sur SQL Violon, mais dès que j'ai mis en œuvre dans la dernière question de ma base de données que je reçois de la fonction n'existe pas d'erreur. Liste de tous je considère liées ci-dessous:

Requête MySQL

SELECT 
title,
director,
thumb,
LEFT(actors, LEN(actors) - CHARINDEX(', ', actors))AS '2 names' 
FROM test 
WHERE MATCH (title, director, actors) AGAINST ('arc*' IN BOOLEAN MODE)

L'erreur

#1305 - FUNCTION database-name.LEN does not exist

Installation

OS: MAC OSX
SERVER: MAMP
DB ACCESS: PhpMyAdmin

SHOW CREATE TABLE test

CREATE TABLE `test` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) NOT NULL,
 `director` varchar(255) NOT NULL,
 `actors` varchar(10000) NOT NULL DEFAULT 'Jamie Foxx, Christoph Waltz, Leonardo DiCaprio, Kerry Washington, Samuel L. Jackson',
 `summary` text NOT NULL,
 `cover` varchar(255) NOT NULL DEFAULT 'http://localhost:8888/assets/OBS/img/uploads/covers-thumb/django_thumb.jpg',
 `thumb` varchar(255) NOT NULL DEFAULT 'http://localhost:8888/assets/OBS/img/uploads/covers-bug/django1_cover.jpg',
 `trailer` varchar(255) NOT NULL DEFAULT 'fnaojlfdUbs',
 PRIMARY KEY (`id`),
 FULLTEXT KEY `myindex` (`title`,`director`,`actors`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8

Je ne comprends vraiment pas pourquoi j'obtiens cette erreur, que la déclaration a bien fonctionné sur SQL Violon. Si vous aviez besoin de renseignements complémentaires sur simple demande. Merci à vous tous pour la lecture et à l'avance pour vos réponses.

BTW: Aucune chance, elle est causée par actors varchar(10000)?

La version de mysql que vous utilisez dans la version 5.0 LONGUEUR(str) non LEN
Pourriez-vous ajouter un lien vers cette Sqlfiddle ? Il n'y a pas de construire-dans len fonction de MySql, il y a lenght et char-length fonctions, suivez ce lien: dev.mysql.com/doc/refman/5.1/en/string-functions.html
Ahh. Le vieux sqlfiddle.com astuce de la sélection d'un mauvais marque et le modèle de SGBDR! LEN() est un serveur Microsoft SQL server fonction. Déteste quand ça arrive.
Voir Tripoter Démo

OriginalL'auteur Cream Whipped Airplane | 2014-01-04