본문 바로가기
MySql

MySQL SELECT WHERE 기본 키 = XYZ를 사용하는 MySQL

by 베이스 공부 2020. 12. 16.
반응형

MySQL의 SELECT * WHERE 쿼리에서 열 대신 "기본 키"를 사용할 수 있습니까?

예시 상황 :

table1:
name (P) | surname

table2:
page (P) | content

나는 시도했다 (PHP)

SELECT * FROM $table WHERE PRIMARY=$row

그리고 아무것도 반환되지 않았습니다 (PHPMyAdmin이 강조 표시 했음에도 불구하고).

테이블 ( $ table )과 행 ( $ row getDbData 함수를 만들고 싶기 때문에이 작업을 수행하고 싶습니다. code>, 행 이름은 기본 키의 값입니다) 필요한 단일 행을 반환합니다.

 

해결 방법

 

기본 키의 이름을 제공하지 않고 대신 자동으로 선택하도록하려는 것 같습니다. 이 경우 먼저 기본 키의 열 이름을 가져온 다음 기본 키의 이름을 전달하는 간단한 쿼리를 만들어야합니다.

// first query
SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
  AND t.table_schema='YourDatabase'
  AND t.table_name='YourTable';

// second query
SELECT * FROM $table WHERE $primary=$row

여기서 $ primary 는 첫 번째 쿼리를 실행하여 얻은 열 이름입니다.

더 좋은 방법은 항상 information_schema에 액세스 할 수있는 것은 아니기 때문에 SHOW KEYS를 사용하는 것입니다. 다음 작업 :

SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'
// Column_name will contain the name of the primary key.

 

참조 페이지 https://stackoverflow.com/questions/20447374

 

 

반응형

댓글