MySQL UPDATE By SELECT
UPDATE by SELECT example:
UPDATE [table0_name] AS T0, [table1_name] AS T1
SET T0.[field0_name]=T1.[field1_name]
WHERE T0.[field0_id]=T1.[field1_id]
ORDER BY IN Value
Query will order results by newest tasks first with exception that any task 100% complete will be displayed last
SELECT *
FROM tasks
ORDER BY task_percent_complete IN(100) ASC, task_datetime DESC
Alias in WHERE Clause
Aliases are not used in WHERE clause, instead they should be used in HAVING clause, like this:
SELECT customer_email, COUNT(customer_email) AS 'duplicate_customer_email'
FROM customers
WHERE customer_email != ''
GROUP BY customer_email
HAVING duplicate_customer_email > 1
ORDER BY duplicate_customer_email DESC
Dynamic Row Count
set @i = 0;
select @i:=@i+1 as row_count
Populate US States
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `states`
-- ----------------------------
DROP TABLE IF EXISTS `states`;
CREATE TABLE `states` (
`state_id` int(11) NOT NULL auto_increment,
`title` varchar(20) default NULL,
`abbr` char(2) default NULL,
PRIMARY KEY (`state_id`)
) ENGINE=MyISAM AUTO_INCREMENT=52 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of states
-- ----------------------------
INSERT INTO `states` VALUES ('1', 'ALABAMA', 'AL');
INSERT INTO `states` VALUES ('2', 'ALASKA', 'AK');
INSERT INTO `states` VALUES ('3', 'ARIZONA', 'AZ');
INSERT INTO `states` VALUES ('4', 'ARKANSAS', 'AR');
INSERT INTO `states` VALUES ('5', 'CALIFORNIA', 'CA');
INSERT INTO `states` VALUES ('6', 'COLORADO', 'CO');
INSERT INTO `states` VALUES ('7', 'CONNECTICUT', 'CT');
INSERT INTO `states` VALUES ('8', 'DELAWARE', 'DE');
INSERT INTO `states` VALUES ('9', 'DISTRICT OF COLUMBIA', 'DC');
INSERT INTO `states` VALUES ('10', 'FLORIDA', 'FL');
INSERT INTO `states` VALUES ('11', 'GEORGIA', 'GA');
INSERT INTO `states` VALUES ('12', 'HAWAII', 'HI');
INSERT INTO `states` VALUES ('13', 'IDAHO', 'ID');
INSERT INTO `states` VALUES ('14', 'ILLINOIS', 'IL');
INSERT INTO `states` VALUES ('15', 'INDIANA', 'IN');
INSERT INTO `states` VALUES ('16', 'IOWA', 'IA');
INSERT INTO `states` VALUES ('17', 'KANSAS', 'KS');
INSERT INTO `states` VALUES ('18', 'KENTUCKY', 'KY');
INSERT INTO `states` VALUES ('19', 'LOUISIANA', 'LA');
INSERT INTO `states` VALUES ('20', 'MAINE', 'ME');
INSERT INTO `states` VALUES ('21', 'MARYLAND', 'MD');
INSERT INTO `states` VALUES ('22', 'MASSACHUSETTS', 'MA');
INSERT INTO `states` VALUES ('23', 'MICHIGAN', 'MI');
INSERT INTO `states` VALUES ('24', 'MINNESOTA', 'MN');
INSERT INTO `states` VALUES ('25', 'MISSISSIPPI', 'MS');
INSERT INTO `states` VALUES ('26', 'MISSOURI', 'MO');
INSERT INTO `states` VALUES ('27', 'MONTANA', 'MT');
INSERT INTO `states` VALUES ('28', 'NEBRASKA', 'NE');
INSERT INTO `states` VALUES ('29', 'NEVADA', 'NV');
INSERT INTO `states` VALUES ('30', 'NEW HAMPSHIRE', 'NH');
INSERT INTO `states` VALUES ('31', 'NEW JERSEY', 'NJ');
INSERT INTO `states` VALUES ('32', 'NEW MEXICO', 'NM');
INSERT INTO `states` VALUES ('33', 'NEW YORK', 'NY');
INSERT INTO `states` VALUES ('34', 'NORTH CAROLINA', 'NC');
INSERT INTO `states` VALUES ('35', 'NORTH DAKOTA', 'ND');
INSERT INTO `states` VALUES ('36', 'OHIO', 'OH');
INSERT INTO `states` VALUES ('37', 'OKLAHOMA', 'OK');
INSERT INTO `states` VALUES ('38', 'OREGON', 'OR');
INSERT INTO `states` VALUES ('39', 'PENNSYLVANIA', 'PA');
INSERT INTO `states` VALUES ('40', 'RHODE ISLAND', 'RI');
INSERT INTO `states` VALUES ('41', 'SOUTH CAROLINA', 'SC');
INSERT INTO `states` VALUES ('42', 'SOUTH DAKOTA', 'SD');
INSERT INTO `states` VALUES ('43', 'TENNESSEE', 'TN');
INSERT INTO `states` VALUES ('44', 'TEXAS', 'TX');
INSERT INTO `states` VALUES ('45', 'UTAH', 'UT');
INSERT INTO `states` VALUES ('46', 'VERMONT', 'VT');
INSERT INTO `states` VALUES ('47', 'VIRGINIA', 'VA');
INSERT INTO `states` VALUES ('48', 'WASHINGTON', 'WA');
INSERT INTO `states` VALUES ('49', 'WEST VIRGINIA', 'WV');
INSERT INTO `states` VALUES ('50', 'WISCONSIN', 'WI');
INSERT INTO `states` VALUES ('51', 'WYOMING', 'WY');
MySQL Substring Replace
Example will replace *.gif with *.jpg
UPDATE table_name SET image=replace(image,'.gif','.jpg');
