У меня есть хранимая процедура, которая проверяет совместимость модели и возвращает сообщение об успехе или ошибке.
Например, процессор и материнская плата должны использовать один и тот же разъем.
Возможные значения из всех записей:
cpu mb case mb
+-----+----+ +-----+---+ +-----------------+-------------------+ +-------+-----+
|cpu_socket| |mb_socket| | case_size | | mb_size |
| AM4 | | AM4 | |uATX/MicroATX,ATX,ExtendedATX,MiniITX| |uATX/MicroATX|
| 1151 | | 1151 | |uATX/MicroATX,MiniITX | | ATX |
+-----+----+ +----+----+ +-----------------+-------------------+ +-------+-----+
case_size и mb_size являются полями enum.
IF (cpu_socket=mb_socket) then ....
или IF (cpu_socket LIKE mb_socket) then ....
будет работать для проверки сокета.
Но как я могу проверить размер материнской платы и размер корпуса? Если я напишу:
IF (case_size = mb_size) then ....
или
IF (case_size LIKE '%mb_size%') then ....
Ни одна из них не работает, потому что, если материнская плата имеет значение «ATX», она будет возвращать случаи со значением «uATX / MicroATX, MiniITX», поскольку она содержит «uATX».
Как я могу проверить совместимость для этого поля?