0
我遇到了一個MySQL程序的麻煩。該過程本身的作品,但只有當我使用拉丁字符。如果我使用西里爾字符串,它不起作用。該表位於頁面頂部的utf8_general_ci,我有「SET NAMES'utf8'」。任何關於這篇文章的幫助表示讚賞。以下是我的代碼。MySQL程序。喜歡模式匹配 - 西里爾字符串
CREATE PROCEDURE `selUsers`(IN usrNme VARCHAR(25))
BEGIN
SELECT *
FROM users WHERE 1
AND (user_real_name LIKE CONCAT('%', usrNme, '%') OR user_company LIKE CONCAT('%', usrNme, '%') OR user_name LIKE CONCAT('%', usrNme, '%'))
ORDER BY user_real_name ASC LIMIT 0, 15;
END
感謝您的回覆。我很感激。我改變了程序,但在西里爾文搜索時沒有結果。以下是新代碼。 DELIMITER // CREATE PROCEDURE selUsers(IN usrNme VARCHAR(25)) BEGIN SET NAMES'utf8'; SELECT USER_ID,user_real_name,user_company,USER_NAME \t FROM用戶WHERE 1 AND(user_real_name LIKE CONCAT( '%',usrNme, '%')OR user_company LIKE CONCAT( '%',usrNme, '%')OR USER_NAME LIKE CONCAT('%',usrNme,'%')) \t ORDER BY user_real_name ASC LIMIT 0,15; END // DELIMITER; – 2012-02-15 15:02:08
我不認爲問題出在你的程序中,而是你如何從你的代碼中調用它。打開連接後,執行SET NAMES utf8命令,然後檢查它是如何工作的。 – 2012-02-15 15:57:31
在調用過程之前,我使用SET NAMES utf8,然後使用mysql_query(「CALL selUsers('」。$ que。「')」);謝謝。 – 2012-02-20 12:36:14