写了一个存储过程,搜索某个单词,同时返回这个用户对这个单词的状态。
到下面Update的时候,报错找不到列名jef_user_word.english。
但这个列名真的存在我发誓,我都能用这个列名select出数据来,就是加了where以后就不识别列名了。
CREATE DEFINER=`root`@`%` PROCEDURE `search_user_word27`(IN eng VARCHAR(50), IN user_id0 VARCHAR(64))
BEGIN
DROP TABLE IF EXISTS tttt;
CREATE TEMPORARY TABLE tttt(
eng VARCHAR(50) PRIMARY KEY,
chn VARCHAR(255),
st INT DEFAULT 0
);
INSERT INTO tttt(eng, chn) SELECT english,chinese FROM jef_word WHERE english LIKE CONCAT('%',eng,'%');
UPDATE tttt SET tttt.st =1 WHERE (tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=1);
UPDATE tttt SET tttt.st =-1 WHERE ((tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=-1));
SELECT eng,chn,st FROM tttt;
END;求大神解决,急啊就快交作业了
到下面Update的时候,报错找不到列名jef_user_word.english。
但这个列名真的存在我发誓,我都能用这个列名select出数据来,就是加了where以后就不识别列名了。
CREATE DEFINER=`root`@`%` PROCEDURE `search_user_word27`(IN eng VARCHAR(50), IN user_id0 VARCHAR(64))
BEGIN
DROP TABLE IF EXISTS tttt;
CREATE TEMPORARY TABLE tttt(
eng VARCHAR(50) PRIMARY KEY,
chn VARCHAR(255),
st INT DEFAULT 0
);
INSERT INTO tttt(eng, chn) SELECT english,chinese FROM jef_word WHERE english LIKE CONCAT('%',eng,'%');
UPDATE tttt SET tttt.st =1 WHERE (tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=1);
UPDATE tttt SET tttt.st =-1 WHERE ((tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=-1));
SELECT eng,chn,st FROM tttt;
END;求大神解决,急啊就快交作业了
解决方案 »
- mysql 过滤问题
- 数据量超大的表高效管理的讨论-大量实时采集的数据在数据库中的问题的讨论
- mysql登不上了。。。。。。。。
- 关于InnoDB_buffer_pool什么时候写入到文件中
- 急!!!在线等mysql admin怎么也没有建库的权限?
- mysql 多主一从,分表同步。可否??
- 怎样设置在mysql5.0建表时字段的默认字符集
- 我的插入语句文本比较大,用phpmyadmin里的sql执行时,一会儿就失败了,怎么办?
- mysql InnoDB一个页最多7992行,这个7992是怎么算出来的???
- MySql 保存删除了的数据,求方案. 急
- sql将两个结果集并在一起
- SQL 获取A列相同但是B列不同的数据项
有结果SELECT * FROM tttt WHERE (tttt.eng)=(jef_user_word.english) AND (jef_user_word.user_id='test user') AND (jef_user_word.status=1)
报错[42S22][1054] Unknown column 'jef_user_word.english' in 'where clause'
from tttt a ,jef_user_word b
where a.eng=b.english and b.user_id='test_user' and b.status=1;
而这个tttt 表中楼主确定有字段名 jef_user_word.english 吗? 估计是另外一张表jef_user_word吧。