Maison > Questions et réponses > le corps du texte
Je travaille sur un projet en cours sur lequel je travaille 引号
, la structure de la base de données n'est pas bien organisée et je ne peux pas apporter beaucoup de modifications au schéma de la base de données pour le corriger.
Dans la base de données :
regular_quotes
和 premium_quotes
soit deux tables. 日期/时间
,没有任何与created_at
相关的列,也没有备用列
存储日期/时间
Tableau 1
常规引号
id | name | quoteno | status | .....| ------------------------------------------ 1 | name1| RQ-909099 | pending | .....| 2 | name2| RQ-800099 | pending | .....| 3 | name3| RQ-965099 | approved | .....|
Tableau 2
premium_quotes
id | name | quoteno | status | .....| ------------------------------------------ 1 | name1| PQ-209099 | pending | .....| 2 | name2| PQ-300099 | pending | .....| 3 | name3| PQ-965099 | pending | .....|
Ce que j'ai fait c'est :
recent_quote_meta
id
、quote_id
、quote_type
、created_at
、updated_at
, deleted_at
recent_quote_meta
中,并使用 quote_id
et j'utilise quote_id
quote_id
和quote_type
et sur cette base, j'obtiens et affiche les devis en conséquenceMais le fait est qu'ils ne veulent pas que je modifie la base de données. Et je ne pense pas que cela soit possible dans le scénario actuel.
Existe-t-il un moyen d'obtenir les dernières cotations pour ces tables ? Cela peut être regular_quotes
ou regular_quotes
或 premium_quotes
Merci !
P粉9564410542023-09-07 15:52:41
Sans aucune colonne d'horodatage, il est en fait impossible de déterminer laquelle des deux tables contient la dernière entrée de cotation. Nous pouvons essayer quelques astuces, mais votre situation déterminera si elles sont dignes de confiance.
Une solution consiste à vérifier si les identifiants sont attribués dans l'ordre et puisque vous connaissez le dernier identifiant dans les deux tableaux, vous pouvez les comparer pour déterminer quelle table a le dernier devis. Par exemple, si le tableau regular_quotes
表中最新的 id
为 3
,并且 regular_quotes
表中最新的 id
>premium_quotes表为5
,可以断定premium_quotes
contient les dernières cotations.
SELECT MAX(id) AS latest_regular_quotes_id FROM regular_quotes; SELECT MAX(id) AS latest_premium_quotes_id FROM premium_quotes;
Ceux-ci renverront la valeur d’ID la plus élevée dans chaque table. Vous pouvez comparer ces deux valeurs pour déterminer quelle table contient les dernières cotations, id
ayant la valeur la plus élevée.
Idéalement, vous souhaiterez peut-être demander à un administrateur de résoudre ce problème.
J'espère que cela vous sera utile.