/*
MySQL Data Transfer
Source Host: localhost
Source Database: easyorder
Target Host: localhost
Target Database: easyorder
Date: 2012-9-6 16:43:20
*/SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for discount_inf
-- ----------------------------
CREATE TABLE `discount_inf` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `content` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3458 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records 
-- ----------------------------
INSERT INTO `discount_inf` VALUES ('2134', 'kunsy', '菜品9.5折不开发票,酒水除外');
INSERT INTO `discount_inf` VALUES ('2345', '测试2', '现金优惠劵,满100抵10元代金劵或9折优惠(酒水除外)');
INSERT INTO `discount_inf` VALUES ('3453', '测试1', '菜品8.8折,其它均无折扣');
INSERT INTO `discount_inf` VALUES ('3455', '测试3', '开票菜品9.5折不开票菜品8.8折');
INSERT INTO `discount_inf` VALUES ('3456', 'anges', '不开发票,菜品9.5折');
INSERT INTO `discount_inf` VALUES ('3458', 'blueking', '现金优惠劵,满100抵10元代金劵');
INSERT INTO `discount_inf` VALUES ('3457', 'snowking', '进店消费中、西餐8.8折优惠。');
上面是表,要求对表中的content字段值安折扣排序!!!!没折扣的可以不显示在结果中,也可以在结果的最后面。求给出完整的sql语句!!!!!可以适当的灵活,小误差也可以小弟q:1004143305 拜托了,小弟刚毕业,感觉有点无能为力

解决方案 »

  1.   


    '3457', 'snowking', '进店消费中、西餐8.8折优惠。
    '3453', '测试1', '菜品8.8折,其它均无折扣
    '3455', '测试3', '开票菜品9.5折不开票菜品8.8折'
    '2345', '测试2', '现金优惠劵,满100抵10元代金劵或9折优惠(酒水除外)'
    '3456', 'anges', '不开发票,菜品9.5折'大概能有这样的结果就可以,主要是按折扣排序
      

  2.   

    这个无法直接能MYSQL简单实现,需要进行语义分析。
      

  3.   

    ORDER BY REGEXP,
    关键是语义拆分,判断词组“数字+折”。这不是坑爹,是在折腾服务器。重新设计的数据库,加一个字段吧。
    ASP,JSP,PHP,外部文件 正则取出 content 里的“数字+折”,然后重新update进新的字段。加一个index。