반응형
MySQL의 SELECT * WHERE
쿼리에서 열 대신 "기본 키"를 사용할 수 있습니까?
예시 상황 :
table1:
name (P) | surname
table2:
page (P) | content
나는 시도했다 (PHP)
SELECT * FROM $table WHERE PRIMARY=$row
그리고 아무것도 반환되지 않았습니다 (PHPMyAdmin이 강조 표시 했음에도 불구하고).
테이블 ( $ table
)과 행 ( $ row ) 만 지정하면되는
getDbData code> 함수를 만들고 싶기 때문에이 작업을 수행하고 싶습니다. 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
반응형
'MySql' 카테고리의 다른 글
MySQL : 큰 VARCHAR 대 TEXT? (0) | 2020.12.16 |
---|---|
MySQL 쿼리-오늘부터 지난 30 일 사이의 레코드 (0) | 2020.12.16 |
MySQL Pymysql 삽입이 작동하지 않음 (0) | 2020.12.16 |
MySQL SQL Server에 삽입 할 때 \ r \ n에 사용할 문자 (0) | 2020.12.16 |
MySQL How to change USERNAME And PASSWORD of MySQL? (0) | 2020.12.16 |
댓글