У меня есть первичный ключ в моей таблице mysql, который состоит из трех столбцов.Mysql Выберите запись, где PRIMARY key = x
CREATE TABLE IF NOT EXISTS `bb_bulletin` (
`OfficeCode` int(5) NOT NULL,
`IssuerId` int(11) NOT NULL,
`BulletinDtm` datetime NOT NULL,
`CategoryCode` varchar(4) NOT NULL,
`Title` varchar(255) NOT NULL,
`Content` text NOT NULL,
PRIMARY KEY (`OfficeCode`,`IssuerId`,`BulletinDtm`),
UNIQUE KEY `U_IssuerId` (`IssuerId`,`OfficeCode`,`BulletinDtm`),
UNIQUE KEY `U_CategoryCode` (`CategoryCode`,`OfficeCode`,`IssuerId`,`BulletinDtm`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Есть ли сокращенный метод для выбора записи для заданного значения первичного ключа.
Я пробовал.
SELECT * FROM `bb_bulletin` WHERE PRIMARY = '20001-1-2011-01-07 14:04:40'
Вместо длинного метода ручного ведения,
SELECT * From bb_bulletin WHERE OfficeCode = 20001 AND IssuerId = 1 AND BulletinDtm = 2011-01-07 14:04:40
Что является стандартом при работе PHP и составных ключей в таблице. Примечание. Я не хочу добавлять автоинкрементные ключи к моим таблицам, чтобы решить эту проблему. Если это невозможно, я просто передам три ограничения в моем URL-адресе.
MySQL поддерживает такой синтаксис (по крайней мере, в 5.2) – Mchl
Я просто составлял синтаксис того, как я думал, что это будет сделано, но то, что вы предоставили выше, выглядит как хороший сокращенный метод, если он работает. Слава богу, давай. – andrew
Есть ли название для того, что вы здесь сделали? Т.е. указывая столбцы как список, разделенный запятыми, а затем значения как список, разделенный запятой? – andrew