草庐IT

Mysql Select record where PRIMARY key = x

coder 2023-10-17 原文

我的 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;

是否有一种简写方法可以为给定的主键值选择一条记录。

我试过了。

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 和复合键时的标准是什么。 注意:我不想在我的表中添加自动递增键来解决这个问题。如果不可能,那么我将只在我的网址中传递三个约束。

最佳答案

我看到您的问题分为两个部分。第一部分是关于引用复合值。我不确定 MySQL 是否支持这个,但这将是执行此操作的 SQL 标准方法:

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

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

关于Mysql Select record where PRIMARY key = x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4788451/

有关Mysql Select record where PRIMARY key = x的更多相关文章

随机推荐