나는 단지 사용자가 1986 년 이후에 태어난 모든 사용자 uid를 선택할 수있는 선택 쿼리를 원합니다.json 형식 데이터에서 쿼리 선택
이 쿼리를 시도했지만 일치하는 숫자 만 선택합니다 LIKE
검색. 여기
SELECT uid FROM {profile_values} WHERE value LIKE '%1986%'
는 SQL 쿼리
CREATE TABLE IF NOT EXISTS `profile_values` (
`fid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`value` text,
PRIMARY KEY (`uid`,`fid`),
KEY `fid` (`fid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `profile_values` (`fid`, `uid`, `value`) VALUES
(5, 1, 'a:3:{s:3:"day";s:2:"27";s:5:"month";s:1:"6";s:4:"year";s:4:"1986";}'),
(5, 3, 'a:3:{s:3:"day";s:2:"15";s:5:"month";s:1:"9";s:4:"year";s:4:"1910";}'),
(5, 4, 'a:3:{s:3:"day";s:2:"26";s:5:"month";s:1:"6";s:4:"year";s:4:"1986";}'),
(5, 5, 'a:3:{s:5:"month";s:1:"4";s:3:"day";s:2:"26";s:4:"year";s:4:"2014";}'),
(5, 6, 'a:3:{s:3:"day";s:2:"26";s:5:"month";s:1:"4";s:4:"year";s:4:"2014";}'),
(5, 7, 'a:3:{s:5:"month";s:1:"4";s:3:"day";s:2:"26";s:4:"year";s:4:"2014";}'),
(5, 8, 'a:3:{s:3:"day";s:2:"26";s:5:"month";s:1:"4";s:4:"year";s:4:"1987";}'),
(5, 17, 'N;'),
(5, 18, 'N;'),
세상에 대한 http://www.tutorialspoint.com/mysql/mysql-regexps.htm을 참조하시기 바랍니다해야합니다 있는지 확인 직렬화 된 배열 대신에 – Ghost
저장하기 전에 문자열을 디코드하거나 정규화 된 방식으로 저장하거나 PHP에서 검색을 수행하십시오 (자바 스크립트 사용) – Strawberry
첫 번째 것 이 것이 권장되지 않기 때문에 더 구조화 된 데이터베이스를 만드는 것입니다. –