Mysql选择PRIMARY键= x的记录

and*_*rew 4 mysql composite-primary-key

我的mysql表中有一个主键,它由三列组成.

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;
Run Code Online (Sandbox Code Playgroud)

是否有一种速记方法来为主键的给定值选择记录.

我试过了.

SELECT * FROM `bb_bulletin` WHERE PRIMARY = '20001-1-2011-01-07 14:04:40'
Run Code Online (Sandbox Code Playgroud)

而不是长手的做法,

SELECT * From bb_bulletin WHERE OfficeCode = 20001 AND IssuerId = 1 AND BulletinDtm = 2011-01-07 14:04:40
Run Code Online (Sandbox Code Playgroud)

在表中处理php和复合键时的标准是什么.注意:我不想在表中添加自动增量键来解决这个问题.如果不可能,那么我将在我的网址中传递三个约束.

Pet*_*aut 6

我看到你问题的两个部分.第一部分是关于引用复合值.我不确定MySQL是否支持这个,但它将是SQL标准的方式:

SELECT * FROM bb_bulletin WHERE (OfficeCode, IssuerId, BulletinDtm) = (20001, 1, '2011-01-07 14:04:40');
Run Code Online (Sandbox Code Playgroud)

另一部分是使用缩写语法引用主键列.我不知道有任何这种可能性.