Je travaille sur un script de mise à jour delta et chaque fois que j'essaie d'utiliser cette commande:Sphinx MySQL sous-requête ne fonctionne pas correctement
SELECT id, title, search
FROM related
WHERE id >
(
SELECT max_doc_id
FROM sphinx_delta
WHERE counter_id = 2
)
Course à phpMyAdmin renverrait 10 résultats.
SELECT id, title, search
FROM related
WHERE id > 1010
Course à phpMyAdmin retourneraient les 10 mêmes résultats. Bien sûr, la valeur renvoyée par le sous-select est 1010.
Le seul problème est que lorsque j'utilise la première requête dans Sphinx search, elle renvoie 0 résultats, alors que la seconde renvoie 10 résultats. Je n'ai aucune idée de ce qui ne va pas, les deux requêtes fonctionnent parfaitement dans MySQL, et j'ai utilisé le tutoriel sur le site Sphinx pour créer le fichier de configuration.
est ici la partie de mon fichier de configuration:
source delta2 : related
{
type = mysql
sql_host = localhost
sql_user = *
sql_pass = *
sql_db = base
sql_port = 3306
sql_query = SELECT id, title, search FROM related WHERE id > (SELECT max_doc_id FROM sphinx_delta WHERE counter_id = 2)
}
J'ai essayé de poster ce sur le forum Sphinx, mais a reçu 0 réponses. Toutes les suggestions, j'ai migré de 0.9.9 à la dernière version en espérant qu'il serait le réparer, il n'a pas été en mesure de le réparer.
Avez-vous essayé d'utiliser 'Sphinx search' pour exécuter la sous-requête? Qu'est-ce qu'il a retourné? Je suppose que c'est là que votre problème est. –
Comment est-ce que j'exécuterais la sous-requête par la recherche de sphinx et savoir quelles valeurs elle a renvoyées? –
Je suis retourné et relooké sur le tutoriel, et sur les dernières phrases, il souligne l'importance de sql_query_pre, Si vous ne mettez pas "sql_query_pre = SET NAMES utf8" après chaque requête UNIQUE, ne fonctionnera pas correctement. Ça fonctionne maintenant. –