DROP TABLE IF EXISTS `pyk`;
CREATE TABLE `pyk` (
`PY` varchar(1) ,
`HZ1` int ,
`HZ2` int
) ;------------------------------------------------------
delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;
DECLARE hz_py char;
SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;
select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk
.hz2;
RETURN hz_py;
END
//
为什么报错?
CREATE TABLE `pyk` (
`PY` varchar(1) ,
`HZ1` int ,
`HZ2` int
) ;------------------------------------------------------
delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;
DECLARE hz_py char;
SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;
select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk
.hz2;
RETURN hz_py;
END
//
为什么报错?
您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 未知的标点符号字符串 @ 11
STR: //
SQL: delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
DECLARE hz_code int;
SQL 查询: delimiter // CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255) BEGIN DECLARE hz_code int; MySQL 返回: #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 'delimiter //CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char(255)
BEGIN
D' at line 1 [ 返回 ]
5.0.45-community-nt
BEGIN
DECLARE hz_code INT;
DECLARE hz_py CHAR;
SET hz_code = ORD(SUBSTRING(s,1,1))*256+ORD(SUBSTRING(s,2,1))-65536 ;
SELECT py INTO hz_py FROM pyk WHERE hz_code>=pyk.hz1 AND hz_code <=pyk
.hz2;
RETURN hz_py;
END$$DELIMITER ;
SQL 查询: DELIMITER;MySQL 返回: #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 'DELIMITER' at line 1 我是再phpadmin中执行的 与这个有关系么?
加个空格