postgresql(PG)フィールドはカンマで区切って、ある値が含まれているかどうかを判断します。

680 ワード

一つのstudent学生表studentテーブルにフィールドフィールドがある場合、それぞれ1,2,3,4,5,6,7では通じない7つのコースを表します。
--     
CREATE TABLE student_table ( NAME VARCHAR ( 255 ), course VARCHAR ( 255 ) );
--      
INSERT INTO student_table ( NAME, course ) VALUES ( '  ', '1,2,5,7' );
問題1:張三が授業を選んだかどうかを判断する。
SELECT
	* 
FROM
	student_table 
WHERE
	NAME = '  ' 
	AND string_to_array( course, ',' ) @> ARRAY [ '2'];
問題二:張三が同時にコースを選んだかどうかを判断する。
SELECT
	* 
FROM
	student_table 
WHERE
	NAME = '  ' 
	AND string_to_array( course, ',' ) @> ARRAY [ '2','6' ];