Я использую MySQL, у меня есть таблица с 9 столбцами. Одним из них является первичный ключ.
Как я могу выбрать одну строку, с помощью первичного ключа или столбца 8 или 4?
Если я правильно понял ваш вопрос:
SELECT * FROM tbl WHERE id = 123 OR colname4 = 'x' OR colname8 = 'y' LIMIT 1
Ключевое слово «LIMIT» гарантирует, что возвращается только одна строка.
select * from MyTable where MyPrimaryKey = 123
Столбцы в SQL не имеют определенного «порядка». Системы баз данных обычно отслеживают заказ для целей показа, но нет смысла запрашивать базу данных для выбора столбца по номеру. Вам нужно знать имя столбца, чтобы запросить его содержимое.
То же самое касается первичного ключа (который, кстати, может быть не только одним столбцом). Вы должны знать, в каком столбце он есть, и какой именно столбец назван, чтобы выполнить запрос.
Если вы не знаете эти вещи или вам нужно их динамически вычислять, тогда
DESCRIBE tablename;
расскажет вам имена каждого столбца и будет ли он частью первичного ключа или нет. Он вернет таблицу, которую вы можете прочитать, как и любой другой результат.