删除表中记录,为什么提示找不到字段,肯定不是中文字符的问题。因为我已经 GB2312 了。除了中文,还有可能什么原因。
在下面的代码中,我的意图是:只要 LSB_RKZL 表的前四个字段等于 LSB_KCZL 表的前四个字段,则删除 LSB_RKZL 的记录。
mysql> DELIMITER //mysql> DESCRIBE LSB_RKZL//
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| 品名  | char(255) | NO   | PRI |         |       |
| 颜色  | char(255) | NO   | PRI |         |       |
| 规格  | char(255) | NO   | PRI |         |       |
| 单位  | char(255) | NO   | PRI |         |       |
| 总量  | int(11)   | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
5 rows in set (0.01 sec)mysql> DESCRIBE LSB_KCZL//
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| 品名  | char(255) | NO   | PRI |         |       |
| 颜色  | char(255) | NO   | PRI |         |       |
| 规格  | char(255) | NO   | PRI |         |       |
| 单位  | char(255) | NO   | PRI |         |       |
| 库存  | int(11)   | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
5 rows in set (0.00 sec)mysql> SELECT * FROM LSB_RKZL//
+--------------+------+------+------+------+
| 品名         | 颜色 | 规格 | 单位 | 总量 |
+--------------+------+------+------+------+
| CP           |      |      |      |   12 |
| CP2          |      |      |      |    5 |
| SQL 入门经典 |      |      |      |    0 |
| 水杯         | 白   |      |      |    0 |
+--------------+------+------+------+------+
4 rows in set (0.00 sec)mysql> SELECT * FROM LSB_KCZL//
+------+------+------+------+------+
| 品名 | 颜色 | 规格 | 单位 | 库存 |
+------+------+------+------+------+
| CP   |      |      |      |    2 |
+------+------+------+------+------+
1 row in set (0.00 sec)mysql> delete from lsb_rkzl where
    -> LSB_RKZL.品名 = LSB_KCZL.品名 AND
    -> LSB_RKZL.颜色 = LSB_KCZL.颜色 AND
    -> LSB_RKZL.规格 = LSB_KCZL.规格 AND
    -> LSB_RKZL.单位 = LSB_KCZL.单位
    -> //
ERROR 1054 (42S22): Unknown column 'LSB_KCZL.鍝佸悕' in 'where clause'

解决方案 »

  1.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    上次就说过 ,两表要关联
    mysql> delete a from lsb_rkzl a inner join LSB_KCZL b on 
        -> aL.品名 = b.品名 AND
        -> a.颜色 = b.颜色 AND
        -> a.规格 = bL.规格 AND
        -> a.单位 =b.单位
        -> //
      

  3.   

    表别名,建议楼主学习一下SQL语法